Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当条目数量可变时反序列化Json_C#_Json.net_Deserialization - Fatal编程技术网

C# 当条目数量可变时反序列化Json

C# 当条目数量可变时反序列化Json,c#,json.net,deserialization,C#,Json.net,Deserialization,我有一个Json文件,看起来像这样 { "Item":[ "name": { "type": "value", "type2": "value", "0":{ "InnerType1":"innerValue", "InnerType2":"innerValue", "InnerType3":"innerValue", }, "1":{ "InnerType1":"innerValue", "InnerType2"

我有一个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”的内部类型完全相同,但值不同

所以任何人都有一个想法,因为我只有一个想法,就是手动反序列化,使用for迭代0到x,当我没有数字时停止,但这不是一个好主意


谢谢您,祝您度过愉快的一天

只需使用它,您无需担心Json键

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

 foreach (KeyValuePair<string, JToken> innerData in jsondata) {
    Console.WriteLine("{0}=> {1}",innerData.Key, innerData.Value.ToString()); 
 }
IDictionary jsondata=JObject.Parse(json);
foreach(jsondata中的KeyValuePair innerData){
Console.WriteLine(“{0}=>{1}”,innerData.Key,innerData.Value.ToString());
}
JToken是JObject、JArray、JProperty的基类,因此JToken可以轻松处理这些类型