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();