Newtonsoft C#中的嵌套数组
Posted
技术标签:
【中文标题】Newtonsoft C#中的嵌套数组【英文标题】:Nested array in Newtonsoft C# 【发布时间】:2021-08-08 07:47:18 【问题描述】:我在 C# 中使用 Newtonsoft 包。 我正在尝试显示嵌套 JSON 数组中列出的所有项目。我很难显示姓名 Jennifer Jones 这就是 JSON 字符串的样子
"responseDetails":
"pageoffset": 0,
"size": 950,
,
"data": [
"id": 473145,
"name": "Class of 2000",
"doc_prog":
"responseDetails":
"pageoffset": 0,
"size": 1,
,
"data": [
"name": "Jennifer Jones"
]
,
这就是我的班级的样子
public respDetails responseDetails get;放;
public class respDetails
public int pageoffset get; set;
public string size get; set;
public List<datas> data get; set; // Top level class attribute
public class datas
public int id get; set;
public string name__v get; set;
public Programs doc_prog get; set;
public class Programs
public respDetails responseDetails get; set;
public class respDetails
public int pageoffset get; set;
public int size get; set;
public List<datasprogram> data get; set; // Top level class attribute
public class datasprogram
public string name get; set;
这就是我设置 for 循环以列出数组中所有项目的方式
var jRelated = JsonConvert.DeserializeObject<JDocsClass>(strRelated);
foreach (var num in jRelated.data)
Console.WriteLine(" Page Offset " + num.doc_prog.responseDetails.pageoffset.ToString() + " " + num.doc_prog.data.ToString() );
这是程序输出
页面偏移量 0 System.Collections.Generic.List`1[storeAPI.JCorrespondenceDocsClass+datas+Programs+datasprogram]
所以我没有显示“Jennifer Jones”,而是显示“System.Collections.Generic.List....”
感谢任何为我指明正确方向的帮助
【问题讨论】:
这能回答你的问题吗? Why am I getting System.Collections.Generic.List`1[System.String] instead of the list's contents? 【参考方案1】:num.doc_prog.data.ToString()
这里您要打印的是列表!
num.doc_prog.data[0].name
如果列表中至少有一个元素(在您的示例 json 中),这将为您提供所需的结果,如果有多个名称,那么要显示它们,您需要循环 num.doc_prog.data
foreach(datasprogram data in num.doc_prog.data)
string name = data.name;
【讨论】:
嗨@Akshay Deodhar。谢谢。此解决方案有效以上是关于Newtonsoft C#中的嵌套数组的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Newtonsoft.Json 将包含数组数组的 json 对象解析为 C# 中的对象列表?
C# Newtonsoft.Json 解析多嵌套json 进行反序列化
C# Newtonsoft.Json 解析多嵌套json 进行反序列化