c# - Newtonsoft C#中的嵌套数组
问题描述
我在 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"
}
]
},
这就是我的班级的样子
公共 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 ....”
我很感激任何帮助指出我正确的方向
解决方案
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;
}
推荐阅读
- python - Opencv cv.calibrateCamera 返回“由名称('flags')和位置(8)给出的 calibrateCamera() 的参数”
- arrays - 如果单元格的值与指定范围内的值匹配,则对其进行条件格式化
- python - PUT 方法的烧瓶应用程序错误:“请求的 URL 不允许该方法。”
- node.js - 找不到带有 express.static 的图像路径
- pytorch - pytorch 数据集和可变大小的数据加载器
- html - 图片未在 HTML 中显示,错误 404 但路径正确
- discord.py - 使用 Discord PY 在嵌入消息中显示表格
- python - Gurobi:获取约束的 LHS(左侧)
- sql - 在同一个表中用另一个值填充空值
- .net - Owin OpenIddict 授权码对于 URL 来说太长了