0

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

4

3 回答 3

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; }
}
于 2012-08-17T17:34:48.353 回答
0

LB 提供了解决方案。但我会注意到,如果我的记忆对我有用,JObject用于动态类型。因此它需要.Net 4或更高版本。以防万一。

于 2012-08-17T17:01:52.063 回答
-1

JsonConvert.DeserializeObject<RootObject>(jsonstring)定义 this 后即可使用RootObject

我使用的工具是http://json2csharp.com,您只需在其中放入 JSON 并取出相应的对象。不过,您需要确保您的 JSON 格式正确,因为在其当前形式下,它不会被解析。

于 2012-08-17T16:22:37.927 回答