从JObject中检索数据

时间:2014-03-03 11:58:22

标签: json.net

我有一个像这样的JObject:

{
  "111": {
    "Group": 1,
    "Category": 1
  },
  "005": {
    "Group": 1,
    "Category": 1
  }
}
    base {Newtonsoft.Json.Linq.JContainer}: {
  "111": {
    "Group": 1,
    "Category": 1
  },
  "005": {
    "Group": 1,
    "Category": 1
  }
}

我需要枚举第一级对象的每个属性(例如“111”),它们的属性列表。 例如,写出:
111:组,类别
005:集团,类别

我发现,对于第一级属性,这样的东西:

List<string> keys = myJO.Properties().Select(p => p.Name).ToList();

但是对于嵌套属性?

1 个答案:

答案 0 :(得分:0)

你走在正确的轨道上。试试这个:

string json = @"
{
  ""111"": {
    ""Group"": 1,
    ""Category"": 1
  },
  ""005"": {
    ""Group"": 1,
    ""Category"": 1
  }
}";

JObject myJO = JObject.Parse(json);
foreach (JProperty prop in myJO.Properties())
{
    JObject childJO = (JObject)prop.Value;
    List<string> keys = childJO.Properties().Select(p => p.Name).ToList();
    Console.WriteLine(prop.Name + ": " + string.Join(", ", keys));
}

输出:

111: Group, Category
005: Group, Category