第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

將 JSON 反序列化為 C# 對(duì)象

將 JSON 反序列化為 C# 對(duì)象

C#
動(dòng)漫人物 2022-12-04 11:07:27
我正在嘗試將 json 對(duì)象反序列化為 c# 對(duì)象,但無(wú)法做到。這是我發(fā)送的 json 對(duì)象{    "User_":    {        "Email":"test@test.com",        "Password":"pass1"    }}這是我使用的 C# 類(lèi)public class User_{    public string Email { get; set; }    public string Password { get; set; }}public class User_ { public string Email { get; 放; } 公共字符串密碼 { 得到; 放; } }public class RootObject{    public User_ User_ { get; set; }}這是我用來(lái)反序列化的代碼RootObject request = JsonConvert.DeserializeObject<RootObject>(json.ToString());此代碼創(chuàng)建一個(gè) User_ 對(duì)象,但 Email 和 Password 字段為空。我在這里做錯(cuò)了什么?在調(diào)試時(shí),我看到了即將發(fā)生的事情{{ "{\"Email_\":\"test@test.com\",\"Password_\":\"pass1\"}": ""  }}看起來(lái)很奇怪
查看完整描述

5 回答

?
夢(mèng)里花落0921

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊

如果我這樣做,我會(huì)得到 和 的正確Email值Password:


public class User_

  {

    public string Email { get; set; }

    public string Password { get; set; }

  }


  public class RootObject

  {

    public User_ User_ { get; set; }

  }


  class Program

  {

    static void Main(string[] args)

    {

      string jsonString = "{\"User_\":{\"Email\":\"test@test.com\",\"Password\":\"pass1\"}}";

      RootObject request = JsonConvert.DeserializeObject<RootObject>(jsonString.ToString());

      Console.WriteLine("Email: {0}", request.User_.Email);

      Console.WriteLine("Password: {0}", request.User_.Password);

      Console.ReadLine();

    }

  }

你可以看到它在這里工作


查看完整回答
反對(duì) 回復(fù) 2022-12-04
?
開(kāi)滿(mǎn)天機(jī)

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊

[JsonProperty("KeyName")]當(dāng)您的鍵名不是純字母時(shí),為什么不使用。

[JsonProperty("KeyName")]為您提供反序列化此類(lèi)包含一些鍵的 json 的優(yōu)勢(shì)

  • 用戶(hù)_

  • 用戶(hù)$

  • @用戶(hù)

  • *用戶(hù)&

還有很多

只需將此屬性添加到您的類(lèi)屬性中即可

[JsonProperty("User_")]
public User User { get; set; }

這使您的屬性名稱(chēng)保持簡(jiǎn)單且更具可讀性

所以最后為你的 json

{

    "User_":

    {

        "Email_":"test@test.com",

        "Password_":"pass1"

    }

}

添加后的所有類(lèi)JsonProperty看起來(lái)像


public class RootObject

{

    [JsonProperty("User_")]

    public User User { get; set; }

}


public class User

{

    [JsonProperty("Email_")]

    public string Email { get; set; }


    [JsonProperty("Password_")]

    public string Password { get; set; }

}

用法:


RootObject request = JsonConvert.DeserializeObject<RootObject>(json.ToString());


Console.WriteLine(request.User.Email);

Console.WriteLine(request.User.Password);

輸出:

http://img1.sycdn.imooc.com//638c0f1a0001dcee01170052.jpg

查看完整回答
反對(duì) 回復(fù) 2022-12-04
?
慕妹3242003

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊

直接反序列化類(lèi)的對(duì)象時(shí),JSON 中不需要類(lèi)名。另一方面,如果您反序列化上面給出的 JSON,則使用 RootObject 反序列化


var user = JsonConvert.DeserializeObject<RootObject>(json.ToString()).User_;


public class RootObject

{

    public User_ User_ { get; set; }

}

或者


而是反序列化以下 JSON:


    {

        "Email":"test@test.com",

        "Password":"pass1"

    }


查看完整回答
反對(duì) 回復(fù) 2022-12-04
?
慕標(biāo)琳琳

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊

我相信你的 c# 類(lèi)中有 2 個(gè)問(wèn)題

  1. 在你的RootObject課上你必須使用

    public User_ User{get;set;}
  2. 當(dāng)您序列化 Json 時(shí),您必須使用。

    User_ request = JsonConvert.DeserializeObject<RootObject>(json.ToString());

這將解決您的問(wèn)題。


查看完整回答
反對(duì) 回復(fù) 2022-12-04
?
浮云間

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊

主要問(wèn)題是您的 RootObject 被序列化為新對(duì)象的屬性名稱(chēng),字符串為空作為值。許多序列化服務(wù)器端的結(jié)果。


而且您可以輕松處理這些問(wèn)題,一旦密碼/電子郵件更改,您將需要一個(gè)新密碼/電子郵件,以下課程將僅適用于此確切的 Json 響應(yīng)。


public partial class DontDoThis

{

    [JsonProperty("{\"Email_\":\"test@test.com\",\"Password_\":\"pass1\"}")]

    public string EmailTestTestComPasswordPass1 { get; set; }

}

為了解決這個(gè)問(wèn)題,您需要:

- 更改代碼服務(wù)器端以提供正確的結(jié)果。

- 字符串操作以刪除和取消轉(zhuǎn)義結(jié)果。

-反序列化一次并再次反序列化。


查看完整回答
反對(duì) 回復(fù) 2022-12-04
  • 5 回答
  • 0 關(guān)注
  • 211 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)