【问题标题】:Nested array in Newtonsoft C#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....”

感谢任何为我指明正确方向的帮助

【问题讨论】:

标签: c# arrays api nested json.net


【解决方案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。谢谢。此解决方案有效
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-01
  • 2020-12-30
  • 1970-01-01
  • 2021-02-10
  • 2011-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多