次の 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
私もこれを見ました JSONをC#動的オブジェクトに逆シリアル化しますか?
そして試した
var dynamicObject = Json.Decode(jsonString);
しかし、次のエラーを受け取ります。
メソッド 'System.Web.Helpers.Json.Decode(System.String)' によるフィールド 'System.Web.Helpers.Json._serializer' へのアクセスに失敗しました。