我需要反序列化一个json数组:
{"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()执行deserealization吗?如果是这样,我应该创建哪些类?
答案 0 :(得分:1)
只是另一种解决方案。
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; }
}
答案 1 :(得分:0)
L.B。提供了解决方案。但我会注意到,如果我的记忆很好,那么 JObject 用于动态类型。因此,它需要 .Net 4 或更高。以防万一。
答案 2 :(得分:-1)
定义此JsonConvert.DeserializeObject<RootObject>(jsonstring)
后,您可以使用RootObject
。
我使用的工具是http://json2csharp.com,您只需输入JSON并输出相应的对象即可。你需要确保你的JSON格式正确,因为它的当前形式不是解析。