C# 使用json.net反序列化数组
我需要反序列化json数组:C# 使用json.net反序列化数组,c#,json.net,windows-phone,C#,Json.net,Windows Phone,我需要反序列化json数组: {"response": [19, {"mid":1068, "date":1343848664, "out":1, "uid":44852633, "read_state":1, "title":" ... ", "body":"А я вовсю."}, {"mid":1007, "date":1328782448, "out":1, "uid":16098
{"response":
[19,
{"mid":1068,
"date":1343848664,
"out":1,
"uid":44852633,
"read_state":1,
"title":" ... ",
"body":"А я вовсю."},
{"mid":1007,
"date":1328782448,
"out":1,
"uid":16098752,
"read_state":0,
"title":" ... ",
"body":"http:\/\/theantidj.net\/wp-content\/themes\/theantidjnet\/images\/khubvio.php"}
等等。我正在使用json.net。我可以使用JsonConvert.DeserializeObject()执行反序列化吗?如果是这样的话,我应该创建什么类?在定义这个
RootObject
之后,可以使用jsonvert.DeserializeObject(jsonstring)
我使用的工具是,您只需输入JSON并输出相应的对象。不过,您需要确保JSON格式正确,因为在其当前形式下,它没有进行解析。L.B.提供了解决方案。但我会注意到,如果我的记忆良好,JObject用于动态类型。因此,它需要.Net 4或更高版本。以防万一。只是另一种解决方案
var itemList = ((JObject)JsonConvert.DeserializeObject(json))["response"]
.Skip(1)
.Select(x => JsonConvert.DeserializeObject<Item>(x.ToString()))
.ToList();
public class Item
{
public int mid { set; get; }
public string date { set; get; }
public int @out { set; get; }
public int uid { set; get; }
public int read_state { set; get; }
public string title { set; get; }
public string body { set; get; }
}
var itemList=((JObject)JsonConvert.DeserializeObject(json))[“response”]
.Skip(1)
.Select(x=>JsonConvert.DeserializeObject(x.ToString()))
.ToList();
公共类项目
{
公共整数mid{set;get;}
公共字符串日期{set;get;}
公共int@out{set;get;}
公共int-uid{set;get;}
公共int read_state{set;get;}
公共字符串标题{set;get;}
公共字符串体{set;get;}
}
这是家庭作业吗?你认为这个类公共类RootObject{public List response{get;set;}}}
是由http://json2csharp.com
有用吗?请参阅我评论中的链接。这个json的问题是:它返回一个数组,其中一个元素是19
,另一个元素是object{“mid”:1068,“date”:1343848664,“out”:1,“uid”:44852633,“read_state”:1,“title”:“…”,“body”:“АkСю”}
是的,问题在于这个数字。所以反序列化在这里没有帮助,我需要使用Linq to Json?Oleg,JObject是一个类,它提供了一些方法,比如jObj[“property”]
。将其与动态一起使用是一种装饰风格。