C# 使用类似数据解析.NET中的嵌套JSON
我调用了一个API,它返回一组JSON。这一个特别是返回一组项目给我。这些项目可以有多个子项目。所有子项目的结构与主项目相同。我似乎找不到任何东西可以告诉我如何解析JSON,以便它在.NET中为我提供某种可用的类,以便我可以在我的网页上显示它 以下是结构(精简,因为原稿很大,并重命名了项目和数字,以便于阅读): 我想让我的班级看起来像(我可能错了)是这样的:C# 使用类似数据解析.NET中的嵌套JSON,c#,.net,json,nested,json.net,C#,.net,Json,Nested,Json.net,我调用了一个API,它返回一组JSON。这一个特别是返回一组项目给我。这些项目可以有多个子项目。所有子项目的结构与主项目相同。我似乎找不到任何东西可以告诉我如何解析JSON,以便它在.NET中为我提供某种可用的类,以便我可以在我的网页上显示它 以下是结构(精简,因为原稿很大,并重命名了项目和数字,以便于阅读): 我想让我的班级看起来像(我可能错了)是这样的: 公共类数据 { 公共列表{get;set;} } 公共类项目 { 公共int id{get;set;} 公共字符串名称{get;set;}
公共类数据
{
公共列表{get;set;}
}
公共类项目
{
公共int id{get;set;}
公共字符串名称{get;set;}
公共列表子项{get;set;}
}
我使用的是JSON.NET,但我尝试过的任何东西最终都没有做任何事情,或者留下错误,无法构建项目。我在过去使用过JSON.NET,当时有一个定义的结构,但这一个让我陷入了一个循环 你们很接近。问题似乎是
数据
类中的列表没有属性名。我将该属性命名为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; }
}
小提琴手:你很接近。问题似乎是
数据
类中的列表没有属性名。我将该属性命名为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; }
}
小提琴:你可以建立一种自我关系,例如:
public class Data
{
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; }
}
var _data = JsonConvert.DeserializeObject<Data>(json);
公共类数据
{
公共列表数据{get;set;}
}
公共类项目
{
公共int id{get;set;}
公共字符串名称{get;set;}
公共列表子项{get;set;}
}
var\u data=JsonConvert.DeserializeObject(json);
您可以创建一种自我关系,例如:
public class Data
{
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; }
}
var _data = JsonConvert.DeserializeObject<Data>(json);
公共类数据
{
公共列表数据{get;set;}
}
公共类项目
{
公共int id{get;set;}
公共字符串名称{get;set;}
公共列表子项{get;set;}
}
var\u data=JsonConvert.DeserializeObject(json);
public class Data
{
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; }
}
var _data = JsonConvert.DeserializeObject<Data>(json);