Kyl*_*ree 1 .net c# json nested json.net
我有一个我正在调用的API返回一组JSON.这个特别是给我一套项目.这些项目可以有多个子项目.所有子项目的结构都是相同的,因为它是主要项目.我似乎找不到任何能告诉我如何解析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"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我认为我希望我的班级看起来像(我可能在这里错了)是这样的:
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; }
}
Run Code Online (Sandbox Code Playgroud)
我正在使用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; }
}
Run Code Online (Sandbox Code Playgroud)
然后,ProjectTree像这样反序列化到你的类,它应该工作正常:
var root = JsonConvert.DeserializeObject<ProjectTree>(json);
Run Code Online (Sandbox Code Playgroud)
小提琴:https://dotnetfiddle.net/5gmosp
| 归档时间: |
|
| 查看次数: |
135 次 |
| 最近记录: |