gpt4 book ai didi

c# - 使用类似数据解析 .NET 中的嵌套 JSON

转载 作者:太空宇宙 更新时间:2023-11-03 18:25:42 25 4
gpt4 key购买 nike

我有一个正在调用的 API,它返回一组 JSON。尤其是这个,是要返还一组Projects给我。这些项目可以有多个子项目。所有子项目的结构都与主项目相同。我似乎找不到任何东西可以告诉我如何解析 JSON,以便它在 .NET 中为我提供某种可用的类,以便我可以在我的网页上显示它。

这是结构(由于原始文件很大,并且重新命名了项目和编号以使其更易于阅读,因此进行了压缩):

{
"data": [
{
"id": 70000,
"name": "Project 70000",
"children": [
{
"id": 71000,
"name": "Project 71000",
"children": [
{
"id": 71100,
"name": "Project 71100",
"children": [
{
"id": 71110,
"name": "Project 71110",
"children": [
{
"id": 71111,
"name": "Project 71111"
},
{
"id": 71112,
"name": "Project 71112"
}
]
}
]
}
]
}
]
},
{
"id": 80000,
"name": "Project 80000",
"children": [
{
"id": 81000,
"name": "Project 81000"
}
]
}
]
}

我认为我希望我的类(class)看起来像(我在这里可能是错的)是这样的:

public class data 
{
public List<project> { get; set; }
}
public class project
{
public int id { get; set; }
public string name { get; set; }
public List<project> children { get; set; }
}

我正在使用 JSON.NET,但我尝试过的任何事情最终都没有做任何事情,或者给我留下了无法构建项目的错误。过去,当有定义的结构时,我使用过 JSON.NET,但这个让我陷入困境!

最佳答案

你非常接近。问题似乎是您的 data 类中的列表没有属性名称。我会将该属性命名为 data(以匹配 JSON 中的属性),然后将该类重命名为有意义的名称,以便对该数据表示的内容有意义。此处我使用 ProjectTree 作为示例。

public class ProjectTree
{
public List<Project> data { get; set; }
}

public class Project
{
public int id { get; set; }
public string name { get; set; }
public List<Project> children { get; set; }
}

然后,像这样反序列化到您的 ProjectTree 类,它应该可以正常工作:

var root = JsonConvert.DeserializeObject<ProjectTree>(json);

fiddle :https://dotnetfiddle.net/5gmosp

关于c# - 使用类似数据解析 .NET 中的嵌套 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34886141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com