JSON就像这样(伪代码):
[{one-off intro object}, [{object},{object},{object}]]
所以它是一个数组,其中数组中的第一个东西是我不感兴趣的对象,第二个是充满我实际想要反序列化的对象的另一个数组。
如何使用JSON.NET执行此操作?
答案 0 :(得分:2)
您可以使用Json.Net的LINQ-to-JSON API来完成这项工作。
为了举例,我们假设您的JSON如下所示:
[
{
"blah": "nothing interesting here"
},
[
{
"id": 1,
"name": "foo",
"desc": "description of foo"
},
{
"id": 2,
"name": "bar",
"desc": "blurb about bar"
},
{
"id": 3,
"name": "baz",
"desc": "buzz about baz"
}
]
]
首先,定义一个类来保存您感兴趣的内部数组中的项目。
public class Item
{
[JsonProperty("id")]
public int Id { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("desc")]
public string Description { get; set; }
}
现在,您需要做的就是将JSON解析为JArray
,然后从中获取子数组并使用ToObject()
将其转换为项目列表。
JArray ja = JArray.Parse(json);
List<Item> list = ja[1].ToObject<List<Item>>();
从那里,您可以像往常一样使用项目列表。
答案 1 :(得分:0)
您可以通过强类型转换或动态获取第二组对象,以下是动态执行此操作的示例:
dynamic jsonArray = JArray.Parse(json);
dynamic targetJsonObjects = jsonArray[1];
答案 2 :(得分:0)
您是否尝试过这样简单的模型?
public class RootObject
{
public object IntroObject { get; set; }
public List<Item> Items { get; set; }
}
public class Item
{
public string WhatEverPropertyYouNeed{ get; set; }
}