我有以下 json 结构,由于某种原因我的数据对象没有绑定到我的 poco 上。我使用 jarray 作为数据属性
{
"nested": [
{
"Id": 1,
"data": [
{
"Foo1": "1"
}
]
},
{
"adotc": 2,
"data": [
{
"Foo2": "2"
},
{
"Foo3": "3"
}
]
}
]
}
data
属性是一个数组,可以包含动态对象且未知。我现在想将它们存储到 JArray 中。
我的 POCO 是这样的
public record MyPOCO
{
public int Id { get; init; }
public JArray Data { get; set; }
}
我想使用
ConfigurationBuilder
绑定我的对象,但由于某种原因,这不适用于绑定。 Id 确实如此,但 Data 对象不为 null,但没有子对象
public static void Main()
{
IConfiguration root = new ConfigurationBuilder()
.AddJsonFile("~/myfile.json")
.Build();
List<MyPOCO> myPOCO = new();
root.GetSection("nested").Bind(myPOCO);
}
尝试绑定对象
怀疑
JArray
类型是否有效,因为 JArray
来自 Newtonsoft.Json 库,.NET 应用程序的默认 JSON 提供程序是 System.Text.Json。
因此,您应该使用
List<Dictionary<string, string>>
,它支持反序列化动态键值对的相同行为。
using System.Collections.Generic;
public record MyPOCO
{
public int Id { get; init; }
public List<Dictionary<string, string>> Data { get; set; }
}