23

JSON Serialization/Deserialization in C# - 简书

 4 years ago
source link: https://www.jianshu.com/p/5dcd0d7b2264?
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

JSON Serialization/Deserialization in C#

2020.03.15 14:18:53字数 208阅读 66

因为对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)

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

淘气的铁柱

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK