带有随机根名称的c#的json



i有一个JSON文件,该文件的根源是随机名称,但在子元素中具有相同的结构。我想在数组或列表中获取所有子元素。

示例json文件:

{  
   "-LeHl495vL6vh-8CaLbD":{  
      "apiKey":"sr-tr-137-beea04e44cb452ba0da0ca090b7e61b4ec6ffc69"
   },
   "-LeHl6jrhUEMb7slZcpB":{  
      "apiKey":"sr-tr-137-aef7a23095c0c7baef1ef681bdd8bf9756ac2a17"
   }
}

我尝试了这些课程,但无法做到。

public class RequestedReport
    {
        public Dictionary<string, List<ReportData>> ReportDatas { get; set; }
    }
    public class ReportData
    {
        public string apiKey { get; set; }
    }

所以我从避难所中的预期输出就像列表,其中包含JSON文件中的所有apikeys。

预先感谢。

在我看来,您的JSON直接代表Dictionary<string, ReportData>。没有包装器对象,也没有列表。如果您可以将JSON验证为该类型,那应该没关系。这是一个完整的例子:

using System;
using System.Collections.Generic;
using System.IO;
using Newtonsoft.Json;
class Program
{
    static void Main()
    {
        var json = File.ReadAllText("test.json");
        var reports = JsonConvert.DeserializeObject<Dictionary<string, ReportData>>(json);
        foreach (var pair in reports)
        {
            Console.WriteLine($"{pair.Key}: {pair.Value.ApiKey}");
        }
    }
}
public class ReportData
{
    [JsonProperty("apiKey")]
    public string ApiKey { get; set; }
}

如果您只想要API键列表,并且您不在乎与之关联的字段名称,则可以使用:

var apiKeys = reports.Values.Select(x => x.ApiKey).ToList();

相关内容

  • 没有找到相关文章

最新更新