使用 json.net 反序列化数组



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

只是另一种解决方案。

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; }
}

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

定义此RootObject后可以使用JsonConvert.DeserializeObject<RootObject>(jsonstring)

我使用的工具 http://json2csharp.com 您只需输入JSON并取出相应的对象即可。不过,您需要确保您的 JSON 格式正确,因为以当前形式它不会解析。

相关内容

  • 没有找到相关文章

最新更新