Every day is wonderful

分享与创新 并大胆的去尝试新鲜事物。。。。

C# ASP.NET 下JSON字符串的反序列化

C#下JSON字符串的反序列化,一般都是用newtonsoft.json,比较方便。.net当然也有提供相应功能,但觉得比较复杂。

所谓反序列化,就是将一个包含JSON内容的字符串,转换回指定对象(不一定是转换回JSON对象)。

方法是:

using Newtonsoft.Json;

。。。

JsonConvert.DeserializeObject<。。。>(strJson)

示例1:

public class ViewTag
{
public int ViewId { get; set; }
public string Name { get; set; }
public bool IsValid { get; set; }
public int Seq { get; set; }
public byte ChangeType { get; set; }
}

string strJson = “[{‘ViewId’:14,’Name’:’view 1′,’IsValid’:true,’Seq’:’1′,’ChangeType’:0},{‘ViewId’:15,’Name’:’view 2′,’IsValid’:true,’Seq’:’2′,’ChangeType’:0}]”;

List<ViewTag> list = JsonConvert.DeserializeObject<List<ViewTag>>(strJson);

上述例子中,json字符串内,每个json元素的数据结构都一样。但假如不一样,怎么办?

示例2:

string strJson = @"[{
'id':1,
'text':'All Object',
'iconCls':'',
'children':[{
'id':11,
'text':'Key attributes',
'children':[{
'id':111,
'text':'Item1'
},{
'id':112,
'text':'Item2'
},{
'id':113,
'text':'Item3'
}]
},{
'id':12,
'text':'Service table 1',
'state':'closed',
'children':[{
'id':121,
'text':'Service 1'
},{
'id':122,
'text':'Service 2'
},{
'id':123,
'text':'Service 3'
}]
},{
'id':13,
'text':'Service table 2',
'state':'closed',
'children':[{
'id':131,
'text':'Service 1'
},{
'id':132,
'text':'Service 2'
},{
'id':133,
'text':'Service 3'
}]
},{
'id':14,
'text':'Service table 3'
}]
}]";
return JsonConvert.DeserializeObject<List<object>>(strJson);

点赞

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注