使用 dynamic 標記解析JSON字串

來源:互聯網
上載者:User

標籤:min   create   info   log   value   abd   update   mic   soft   

參考頁面:

http://www.yuanjiaocheng.net/CSharp/csharprumenshili.html

http://www.yuanjiaocheng.net/CSharp/csharp-class.html

http://www.yuanjiaocheng.net/CSharp/csharp-variable.html

http://www.yuanjiaocheng.net/CSharp/Csharp-data-types.html

http://www.yuanjiaocheng.net/CSharp/cshart-value-reference-type.html

1 string jsonStr = "{\"data\": {\"ssoToken\": \"70abd3d8a6654ff189c482fc4842468c\",\"account\":\"admin\",\"userType\":\"platformAdmin\",\"realName\": \"超級管理員\",\"sex\": 0,\"sexName\":\"男\",\"email\":\"[email protected]\",\"mobile\":\"15120757948\",\"createdDt\": \"2013-08-16 00:00:00\",\"updatedDt\": \"2014-12-10 00:00:00\" },\"isSuccess\": true}"; 

當 .Net 程式接收到了這段JSON字串資料的時候,大家肯定會想到使用 Newtonsoft.Json 去序列化(SerializeObject)和還原序列化(DeserializeObject)一個對象。

使用 SerializeObject 的樣本:

 1 A a = new A(); 2 a.age = 11; 3 a.name = "Jack"; 4 B b = new B(); 5 b.sex = "Man"; 6 //b.money = 12; 7 a.B = b; 8 string str = Newtonsoft.Json.JsonConvert.SerializeObject(a); 9 10 輸出結果:{"age": 11, "name": "Jack", "B": {"sex": "Man", "money": ""}}

使用 DeserializeObject 的樣本:

1 string jsonStr = @"{"age": 11, "name": "Jack", "B": {"sex": "Man", "money": ""}}";2 var a = Newtonsoft.Json.JsonConvert.DeserializeObject<A>(jsonStr);3 4 結果:a.age = 11;.......

好了,言歸正傳,如何使用 dynamic 去解析一個Json字串呢?

1 string jsonStr = "{\"data\": {\"ssoToken\": \"70abd3d8a6654ff189c482fc4842468c\",\"account\":\"admin\",\"userType\":\"platformAdmin\",\"realName\": \"超級管理員\",\"sex\": 0,\"sexName\":\"男\",\"email\":\"[email protected]\",\"mobile\":\"15120757948\",\"createdDt\": \"2013-08-16 00:00:00\",\"updatedDt\": \"2014-12-10 00:00:00\" },\"isSuccess\": true}"; 2 var loginInfo = JsonConvert.DeserializeObject<dynamic>(jsonStr); 3 var user = loginInfo.data;4 string ssoToken = user.ssoToken;5 string account = user.account;

這樣,不用建立loginInfo,user照樣能解析JSON,而且不會因為那邊增加欄位報錯啦。

陶陶的兔二,與你分享...

使用 dynamic 標記解析JSON字串

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.