首页 > 解决方案 > C# 将 JSON 反序列化到较低级别?

问题描述

我将一些 JSON 反序列化为 Data1 类型的列表。

班上:

public class RootObject
{
    public List<Data1> data { get; set; }
    public string status { get; set; }
    public int requested { get; set; }
    public int performed { get; set; }
}

public class Data1
{
    public List<ClioFolder> data { get; set; }
    public int status { get; set; }
}

public class ClioFolder
{
    public int id { get; set; }
    public string name { get; set; }
    public Parent parent { get; set; }
}

public class Parent
{
    public int id { get; set; }
    public string name { get; set; }
}

杰森:

{
  "data": [
    {
      "data": [
        {
          "id": 66880231,
          "name": "root",
          "parent": null
        },
        {
          "id": 68102146,
          "name": "Dummy",
          "parent": {
            "id": 66880231,
            "name": "root"
          }
        }
      ],
      "status": 200
    }
  ],
  "status": "completed",
  "requested": 10,
  "performed": 10
} 

使用此命令:

List<Data1> allData = JsonConvert.DeserializeObject<RootObject>(content).data;

这工作正常,但我真正需要的是它自己的列表中两个“数据”对象中的数据。我以为我可以做类似的事情:

List<ClioFolder> allClios = allData.data;

但这不起作用。我也尝试从 JSON 直接脱轨到第二个列表中,但这也不起作用:

List<Cliofolder> allClios = JsonConvert.DeserializeObject<RootObject>(content).data.data;

实现这一目标的正确方法是什么?

标签: c#

解决方案


这是一个清单。你应该使用:

List<ClioFolder> test = allData.FirstOrDefault()?.data;

推荐阅读