JSON Serialization/Deserialization in C#

由于对C#不是特别熟悉,可是最近写个c#的demo,须要对获取的的json字符串进行解析,其实Newtonsoft.Json也能够达到效果,具体方法请见评论。json

另外了解到System.Web.Script.Serialization也支持想要的功能(http://procbits.com/2011/04/21/quick-json-serializationdeserialization-in-c)c#

首先,在工程中增长引用:System.Web.Extensionside

针对比较简单的JSON Stringui

{"some_number": 108.541, 
"date_time": "2011-04-13T15:34:09Z", 
"serial_number": "SN1234"}

你能够用以下方式将它解析为一个Dictionary :ip

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"   }
}

解析方式以下:string

using System.Web.Script.Serialization;var jss = new JavaScriptSerializer();var dict = jss.Deserialize<Dictionary<string,dynamic>>(jsonText);

Console.WriteLine(dict["some_number"]); //outputs 108.541Console.WriteLine(dict["more_data"]["field2"]); //outputs hello

其中more_data字段被解析成一个Dictionary
另外,还能够使用另外一种方式:it

using System.Web.Script.Serialization;var jss = new JavaScriptSerializer();var dict = jss.Deserialize<dynamic>(jsonText);

Console.WriteLine(dict["some_number"]); //outputs 108.541Console.WriteLine(dict["more_data"]["field2"]); //outputs hello

另外,Serialization 一样比较简单io

using System.Web.Script.Serialization;var jss = new JavaScriptSerializer();var dict = jss.Deserialize<dynamic>(jsonText);var json = jss.Serialize(dict);
Console.WriteLine(json)
相关文章
相关标签/搜索