如何在 C# 中使用 Newtonsoft.json 解析具有不同名称的 JSON 子节点列表

naf*_*fr1 5 .net c# json.net

我希望将 JSON 解析为 C# 列表。问题是我尝试解析的数据不是数组格式。以下是示例 JSON

   {
   "results":{
      "records":{
         "record:8545314564":{
            "name":"record 1",
            "description":"description for record 1"
         },
         "record:2254698789":{
            "name":"record 2",
            "description":"description for record 2"
         },
         "record:7454687851":{
            "name":"record 3",
            "description":"description for record 3"
         }
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

我的模型类看起来像这样

public class Record
{
    public string Name { get; set; }

    public string Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是创建一个

List<Record> Records
Run Code Online (Sandbox Code Playgroud)

我不关心记录子节点的名称(即记录:8545314564,记录:2254698789 等)。我所关心的是每个记录节点内的名称和描述属性。

如果有人可以提供 C# 示例代码来实现所需的输出,我将不胜感激。

yv9*_*89c 3

还有另一种选择:

using Newtonsoft.Json.Linq;
...
var jObject = JObject.Parse(yourJsonString);
var records = jObject["results"]["records"]
    .Children()
    .Children()
    .Select(i => i.ToObject<Record>())
    .ToList();
Run Code Online (Sandbox Code Playgroud)

您可以在这里找到相关的 Json.NET 文档: https://www.newtonsoft.com/json/help/html/SerializingJSONFragments.htm