単一の値と配列の値が混在するjson辞書をC#の具体的なオブジェクトに変換する方法については、誰も提案していません。辞書int、ダイナミックは動作しません以下のjsonを参照してください。 JArray
は、JSONの配列を表し、JSONを混合値のCシャープ辞書に変換する
public Dictionary<string, object> ParseJson(string json) {
var obj = JObject.Parse(json);
var dict = new Dictionary<string, object>();
foreach (var property in obj) {
var name = property.Key;
var value = property.Value;
if (value is JArray) {
dict.Add(name, value.ToArray());
}
else if (value is JValue) {
dict.Add(name, value.ToString());
}
else {
throw new NotSupportedException("Invalid JSON token type.");
}
}
return dict;
}
、JObject
は、任意のJSONオブジェクトを表すクラスであり、そしてJValue
はスカラーを表し:Newtonsoft.JSON
パッケージに
{
"outcome": "SUCCESS",
"response": {
"249998": "1203088",
"249999": "1203091",
"250000": "1203093",
"250001": "1203095",
"250003": "1203096",
"250004": "1203102",
"250005": "1203107",
"250006": {
"1203109": 1,
"1203110": 0,
"1203111": 0,
"1203112": 0,
"1203113": 0,
"1203114": 0,
"1203115": 0,
"1203116": 0,
"1203117": 0,
"1203118": 0,
"1203119": 0,
"1203120": 0
},
"250007": {
"1203121": 0,
"1203122": 0,
"1203123": 0,
"1203124": 0,
"1203125": 1,
"1203126": 0,
"1203127": 0,
"1203128": 0
},
"250008": {
"1203129": "fcdvgbjkl;"
},
"250010": "1203130",
"250011": "1203135",
"250012": "1203140",
"250013": "1203145",
"250014": "1203150",
"250015": "1203155",
"250017": "1203160",
"250018": "1203165",
"250019": "1203170",
"250020": "1203175",
"250021": "1203181",
"250023": "1203183",
"250024": "1203188",
"250025": "1203193",
"250026": "1203198",
"250027": "1203203",
"250028": "1203208",
"250029": "1203213",
"250030": "1203219",
"250031": {
"1203221": 0,
"1203222": 0,
"1203223": 0,
"1203224": 0,
"1203225": 1,
"1203226": 0,
"1203231": 0
},
"250036": {
"1203236": 0,
"1203237": 0,
"1203238": 0,
"1203243": 0,
"1203244": 0,
"1203245": 0,
"1203246": 1,
"1203247": 0,
"1203248": 0,
"1203249": 0,
"1203250": 0,
"1203251": 0,
"1203252": 0,
"1203253": 0,
"1203254": 0,
"1203255": 0,
"1203256": 0,
"1203257": 0,
"1203258": 0,
"1203259": 0
},
"250041": {
"1203264": "gjhgjhg"
},
"250045": {
"1203269": 0
}
}
}
可能性のある重複した以下のコードのような複数のレベルのオブジェクトを必要とする[カスタムC#のオブジェクトにJSONオブジェクトを変換する方法?](http://stackoverflow.com/questions/2246694/how-to-convert-json -object-to-custom-c-sharp-object) –
ダイナミックタイプを使用するときのエラーは何ですか? – PMerlet
Newtonsoft:その他の情報:型にJSON配列(例:[1,2,3])が必要なため、現在のJSONオブジェクト(例:{"name": "value"})をタイプ 'System.Object []'にデシリアライズできません正しくデシリアライズします。 –