因為對C#不是特別熟悉,但是最近寫個c#的demo,需要對獲取的的json字串進行決議,其實Newtonsoft.Json也可以達到效果,具體方法請見評論,
另外了解到System.Web.Script.Serialization也支持想要的功能(http://procbits.com/2011/04/21/quick-json-serializationdeserialization-in-c)
首先,在工程中增加參考:System.Web.Extensions
針對比較簡單的JSON String
{ "some_number": 108.541, "date_time": "2011-04-13T15:34:09Z", "serial_number": "SN1234" }
你可以用如下方式將它決議為一個Dictionary :
using System.Web.Script.Serialization; var jss = new JavaScriptSerializer(); var dict = jss.Deserialize<Dictionary<string,string>>(jsonText); Console.WriteLine(dict["some_number"]); //outputs 108.541
針對比較復雜的JSON String
{ "some_number": 108.541, "date_time": "2011-04-13T15:34:09Z", "serial_number": "SN1234" "more_data": { "field1": 1.0 "field2": "hello" } }
決議方式如下:
using System.Web.Script.Serialization; var jss = new JavaScriptSerializer(); var dict = jss.Deserialize<Dictionary<string,dynamic>>(jsonText); Console.WriteLine(dict["some_number"]); //outputs 108.541 Console.WriteLine(dict["more_data"]["field2"]); //outputs hello
其中more_data欄位被決議成一個Dictionary
另外,還可以使用另一種方式:
using System.Web.Script.Serialization; var jss = new JavaScriptSerializer(); var dict = jss.Deserialize<dynamic>(jsonText); Console.WriteLine(dict["some_number"]); //outputs 108.541 Console.WriteLine(dict["more_data"]["field2"]); //outputs hello
另外,Serialization 同樣比較簡單
using System.Web.Script.Serialization; var jss = new JavaScriptSerializer(); var dict = jss.Deserialize<dynamic>(jsonText); var json = jss.Serialize(dict); Console.WriteLine(json)
如需轉載,請宣告,如有幫助,記得關注鐵柱,后面的內容更精彩
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/61582.html
標籤:C#
上一篇:C#使用資料存盤方式訪問資料庫
下一篇:c# 委托的進化
