【发布时间】:2021-08-16 19:10:39
【问题描述】:
我需要一些帮助来映射没有键的 json 数组。例如:
[
"value1",
234,
3034,
"data",
[
"some value",
null,
2020
],
]
我根据收到的这些值创建了一个类,但我无法映射到类对象。我可以使用动态变量访问这些数据,例如:
dynamic object = DataFromJson();
var firstvalues = object[0]; // "value1"
我的 json 太大了,里面有很多数组,所以用索引访问是一个很大的过程。
有人知道如何访问此类数据并映射到类吗?
【问题讨论】:
-
@DmitriyGrebennikov 这是完全有效的 JSON。它是一个单独的 JSON 值(一个数组),其中包含其他 json 值(字符串/数字/空值/布尔值)的其他 JSON 值(数组)。
-
如果它没有固定格式(元素 1 包含 4 项,元素 2 包含 3 项),则无法对其进行反序列化。您要么必须更改它以使用密钥,要么必须手动解析数据并构建自己的对象。
-
您使用的是什么序列化程序?如果使用 Json.NET,请参阅How to deserialize an array of values with a fixed schema to a strongly typed data class?。
-
然后告诉我们你是如何识别进入你的课程的价值观的,我们可以告诉你如何去做。
-
您可以使用
JArray jsonArray = JArray.Parse(DataFromJson());.. 使用jsonArray.Children()您可以使用LINQ表达式来获取任何属性的值。