Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用json.net反序列化数组_C#_Json.net_Windows Phone - Fatal编程技术网

C# 使用json.net反序列化数组

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

我需要反序列化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()执行反序列化吗?如果是这样的话,我应该创建什么类?

在定义这个
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”]
。将其与
动态
一起使用是一种装饰风格。