2013-12-17 79 views
0

所以我有一个JSON文件看起来像这样反序列化Json的时候进入的变化量

{ 
"Item":[ 
"name": { 
    "type": "value", 
    "type2": "value", 
    "0":{ 
    "InnerType1":"innerValue", 
    "InnerType2":"innerValue", 
    "InnerType3":"innerValue", 
    }, 
    "1":{ 
    "InnerType1":"innerValue", 
    "InnerType2":"innerValue", 
    "InnerType3":"innerValue", 
    } 
},"name2": { 
    "type": "value", 
    "type2": "value", 
    "0":{ 
    "InnerType1":"innerValue", 
    "InnerType2":"innerValue", 
    "InnerType3":"innerValue", 
    } 
},"name3": { 
    "type": "value", 
    "type2": "value", 
    "0":{ 
    "InnerType1":"innerValue", 
    "InnerType2":"innerValue", 
    "InnerType3":"innerValue", 
    }, 
    "1":{ 
    "InnerType1":"innerValue", 
    "InnerType2":"innerValue", 
    "InnerType3":"innerValue", 
    }, 
    "2":{ 
    "InnerType1":"innerValue", 
    "InnerType2":"innerValue", 
    "InnerType3":"innerValue", 
    } 
}, 
] 
} 

我的问题是与“0”,“1”和“2”因为他们并不总是出现在我的数据,也许有一次我会有这种类型的42个条目。 “0”,“1”和“2”具有完全相同的内部类型但不是相同的值。

所以任何人有一个想法,只有一个我有一个手动deserialise与for迭代0到x和停止时,我没有数字,但它不是一个好主意。

谢谢你,有一个美好的一天

回答

0

简单地使用这个,你不用担心的Json键

IDictionary<string, JToken> jsondata = JObject.Parse(json); 

foreach (KeyValuePair<string, JToken> innerData in jsondata) { 
    Console.WriteLine("{0}=> {1}",innerData.Key, innerData.Value.ToString()); 
} 

JToken是基类JObject,JArray,JProperty的,所以这些类型的可以通过JToken轻松处理