码迷,mamicode.com
首页 > Windows程序 > 详细

JSON Serialization/Deserialization in C#

时间:2020-03-15 15:16:03      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:cti   str   情况   rip   方法   src   习惯   ict   使用   

因为对C#不是特别熟悉,但是最近写个c#的demo,需要对获取的的json字符串进行解析,开始使用Newtonsoft.Json.Linq尝试了以下,但是感觉操作起来比较麻烦,尤其对与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)

如需转载,请声明,如有帮助,记得关注铁柱,后面的内容更精彩
技术图片

JSON Serialization/Deserialization in C#

标签:cti   str   情况   rip   方法   src   习惯   ict   使用   

原文地址:https://www.cnblogs.com/art-geek/p/12497533.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!