【发布时间】:2013-05-07 10:16:24
【问题描述】:
我有以下 JSON;
{
"b2c": {
"languages": {
"de": {
"models": {
"t300": {
"name": "Aveo",
"bodyTypes": {
"t300-4d-my13": {
"trimLevels": {
"lt": {
"name": "LT",
"variants": {
"1.2_16V_86_Gas_MT": {
"name": "1.2 MT",
"price": {
"EUR": {
"value": 13990,
"formatted": "13.990,00 €"
}
},
"infoFeatures": {
"fuel_consumption_extra_urban#consumption": {
"name": "Kraftstoffverbrauch außerorts ",
"value": "4.6",
"formatted": "4,6"
},
"top_speed#kilometer_per_hour": {
"name": "Höchstgeschwindigkeit",
"value": "171",
"formatted": "171"
}
},
"images": null,
"documents": null
}
}
}
}
}
}
}
}
}
}
}
}
b2c、de、t300、t300-4d-my13、It 等的值是动态的,但语言、模型、bodyTypes、trimLevels、变体、inforFeatures、图像和文档将保持不变。 我需要提取所有值以访问诸如languages.["de"]、models.["t300"].name、timeLevels.["It"]、Variants 和infoFeatures 之类的值,因为这些键[""] 是动态的,所以我不知道该参考什么。
我试过了,
var jsonSerializer = new JsonSerializer();
dynamic dynamicObject = jsonSerializer.Deserialize(new JsonTextReader(new StringReader(jsonString)));
//var level1 = dynamicObject.b2c
我也看过这个 Deserialize JSON into C# dynamic object?
试过了
var dynamicObject = Json.Decode(jsonString);
但收到以下错误;
尝试通过方法“System.Web.Helpers.Json.Decode(System.String)”访问字段“System.Web.Helpers.Json._serializer”失败。
【问题讨论】:
-
我在link 找到了上述异常答案。有人可以让我知道谁来引用动态 JSON 对象吗?
-
我可以通过 Json.Decode() 解码您的 Json 字符串,并可以访问语言["de"] 等。我注意到您在 'languages' 和 ["de"] 之间使用点 (.) .那是你的问题吗?