【发布时间】:2018-10-30 13:08:32
【问题描述】:
{
"Main":
{
"subfolder" :
{
"photos" :
{
"January" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"February" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"March" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"April" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"May" :
{
"name" : "Detail of photo",
"date": "id of photo"
}
},
"photos_of_camera" :
{
"January" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"February" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"March" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"April" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"May" :
{
"name" : "Detail of photo",
"date": "id of photo"
}
}
},
"subfolder_1" :
{
"photos" :
{
"January" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"February" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"March" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"April" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"May" :
{
"name" : "Detail of photo",
"date": "id of photo"
}
},
"photos_of_camera" :
{
"January" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"February" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"March" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"April" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"May" :
{
"name" : "Detail of photo",
"date": "id of photo"
}
}
}
},
"Root":
{
"subfolder" :
{
"photos" :
{
"January" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"February" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"March" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"April" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"May" :
{
"name" : "Detail of photo",
"date": "id of photo"
}
},
"photos_of_camera" :
{
"January" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"February" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"March" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"April" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"May" :
{
"name" : "Detail of photo",
"date": "id of photo"
}
}
},
"subfolder_1" :
{
"photos" :
{
"January" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"February" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"March" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"April" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"May" :
{
"name" : "Detail of photo",
"date": "id of photo"
}
},
"photos_of_camera" :
{
"January" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"February" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"March" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"April" :
{
"name" : "Detail of photo",
"date": "id of photo",
"location": "location detail"
},
"May" :
{
"name" : "Detail of photo",
"date": "id of photo"
}
}
}
}
}
我有这样的数据。 我想检索所有财产,如果有的话,它的价值。 我只能使用像这样的代码使用 Newtonsoft.json 包检索第一个孩子
string a = File.ReadAllText(@"json file path");
List<string> read(string file)
{
JObject jObject = JObject.Parse(file);
foreach(JProperty i in jObject.Properties())
{
var name = i.Name;
Console.WriteLine(bb);
}
var child = jObject.First.First;
if(!st.HasValues)
{
Console.WriteLine(child.ToString());
return null;
}
string cnr = Convert.ToString(child);
return recursion(cnr);
}
recursion(a);
但它只给我第一个孩子的数据,就像这样
主要
根
子文件夹
子文件夹_1
照片
photos_of_camera
一月
二月
三月
四月
五月
名字
日期
位置
照片细节
但我想要所有的属性和它的价值,所以任何人都可以帮助我吗??
【问题讨论】:
-
“所有属性”到底是什么意思?您想要
name、date和location和/或其他的所有值吗?请告诉我们你的输出应该是什么。 -
您可以使用
DescendantsAndSelf(),如图所示,例如在this answer 的开头到Picking Out Simple Properties from Hierarchical JSON。SelectTokens("..*")如this answer 到How can I generate all possible LINQ strings of a json object for Json.net? 所示是另一种可能性。 -
@RuiJarimba , 输出如下 主子文件夹, 照片, 一月, 姓名, 照片详情, 日期, 照片 ID, 位置, 位置详情, 二月, 姓名, 照片详情, 日期, 身份证照片,位置,位置详细信息,都在一个列表中
-
@Shaktishah 我注意到您的“日期”属性有一个额外的空间,这不是故意的吗?
-
但是我想要所有的属性和它的价值,所以任何人都可以帮助我吗?? - 请edit你的问题能准确说明你想要的非原始
"subfolder"? 之类的属性
标签: c# .net json deserialization