如何对这个JSON阵列进行挑选



JSON会像这样(伪代码):

[{one-off intro object}, [{object},{object},{object}]]

因此,这是一个数组,其中数组中的第一件事是我不感兴趣的对象,第二个是另一个装满我真正想要验证的对象的数组。

我该如何使用json.net做到这一点?

您可以使用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>>();

从那里,您可以使用往常的项目列表。

小提琴:https://dotnetfiddle.net/cafzux

您可以通过强烈键入或动态地到达第二组对象,这是动态进行操作的一个示例:

dynamic jsonArray = JArray.Parse(json);         
dynamic targetJsonObjects = jsonArray[1];

您是否尝试过这样的简单模型?

public class RootObject
{
    public object IntroObject { get; set; }
    public List<Item> Items { get; set; }
}
public class Item
{
    public string WhatEverPropertyYouNeed{ get; set; }
}

相关内容

  • 没有找到相关文章

最新更新