【问题标题】:Return Nested json objects using json.net in a list使用 json.net 在列表中返回嵌套的 json 对象
【发布时间】:2015-08-18 16:57:37
【问题描述】:

如何使用 json.net 返回嵌套的 json 对象:

我如何设置我的类来返回这个

        [  {
            "name": "Jasmine Coots",
            "sex": "female",
            "age": 49,
            "Sons": [
                {
                  "name": "Morgan Rhett",
                  "age": 25,
                  "sex": "male"
                },
                {
                  "name": " Jasmine Coots ",
                  "age": 22,
                  "sex": "female"
                },
                {
                  "name": "Joaquin Strother",
                  "age": 17,
                  "sex": "male"
                }
              ]
        },
 {
            "name": "Jasmine Coots",
            "sex": "female",
            "age": 49,
            "Sons": [
                {
                  "name": "Morgan Rhett",
                  "age": 25,
                  "sex": "male"
                },
                {
                  "name": " Jasmine Coots ",
                  "age": 22,
                  "sex": "female"
                },
                {
                  "name": "Joaquin Strother",
                  "age": 17,
                  "sex": "male"
                }
              ]
        }
            ]

我需要使用 c# 中的列表、数据表或数据读取器返回一个对象数组,任何如何做到这一点的例子都会很棒

【问题讨论】:

  • 我假设你是从 JSON 转到 C# 对吗?

标签: c# list datatable json.net datareader


【解决方案1】:

生活小贴士:Check out this site, it's amazing. 我唯一不特别喜欢的是它不会自动使用常规属性名称 (PascalCase),但它真的很方便。只要拼写正确,您就可以自己进行调整。

现在,您可以使用它生成反序列化这只小狗所需的类。

public class Son
{
    public string name { get; set; }
    public int age { get; set; }
    public string sex { get; set; }
}

public class RootObject
{
    public string name { get; set; }
    public string sex { get; set; }
    public int age { get; set; }
    public List<Son> Sons { get; set; }
}

用法:

var jsonString = "this is your JSON data";
var root = JsonConvert.DeserializeObject<RootObject>(jsonString);

// do stuff

【讨论】:

  • 在这个例子中,你将如何从 root.Son 列表中获取值?
  • foreach(var s in root.Sons) Console.WriteLine(s.name);
猜你喜欢
  • 2016-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
  • 2016-01-17
相关资源
最近更新 更多