读取嵌套的动态JSON属性

时间:2018-02-08 17:10:47

标签: c# json dynamic nested

首先,我检查了所有旧问题,发现这个问题非常有用:Reading dynamic attributes of json into .net C#但在我的案例中并没有那么有用,我错过了一些不确定的问题!

我尝试使用嵌套动态属性读取动态JSON,这里是JSON:

{"data":{"cart":{"seats":{"3B00535EF2414332":{"212":{"6":["22","21"]}}}}}}

请注意,每次获得此JSON时,3B00535EF24143322126都是动态的。 在C#中,我不知道如何设置属性,因为我需要提供一个具有与对象名称完全相同的属性的类来反序列化该对象。我想把它解析为C#中的动态对象并尝试调用它,但仍然可以作为我每次唯一已知值3B00535EF2414332,但我不知道其他2个动态属性,I需要检索它们。

我虽然关于字典方式,但我无法正确创建它。实际上,我没有理解它。

感谢您的时间。

1 个答案:

答案 0 :(得分:4)

你可以试试这个:

var seats = JObject.Parse(json)["data"]["cart"]["seats"].Children<JProperty>();
var unknown0 = seats.First();
var unknown1 = unknown0.Value.Children<JProperty>().First();
var unknown2 = unknown1.Value.Children<JProperty>().First();

// unknown0.Name -> 3B00535EF2414332
// unknown1.Name -> 212
// unknown2.Name -> 6;
// unknown2.Value.ToObject<int[]>() -> [22,21]

编辑:您还可以使用它来检索值以及路径名称:

{{1}}