我有一个JSON文件,我必须在其中验证其所有节点和子节点的数量。但是,我找不到找到这些计数的通用方法
这是JSON文件的外观
{
"total": 100,
"offset": 0,
"sources_used": [
{
"source": "mysource",
"source_last_updated": "2018-10-24T16:16:10.698+00:00",
"last_imported": "2019-01-17T22:13:03.861+00:00",
"import_rate": ""
}
],
"search_performed_at": "2019-01-17T22:39:01.034+00:00",
"results": [
{
"id": "id1",
"label": "label1",
"type": [
"Countries"
],
"sub_class_of": [
],
...............................
我必须确保顶部的total
值对应于results
元素的节点/子节点数量
我能够成功将JSON文件解析为.NET JSON对象
string contents = File.ReadAllText("jsonfile.json");
var jsonobject = JObject.Parse(contents);
现在的问题是,如何获得results
元素的所有子元素/所有元素,以便可以针对total
元素进行验证
答案 0 :(得分:0)
JObject.Parse
将文本解析为通用的object
,并不能说明导入的JSON的结构。
相反,如果您创建一个紧密表示您的JSON内容的类(例如,通过http://json2csharp.com/之类的在线工具),则可以运行JsonConvert.DeserializeObject<RootObject>(yourJsonString)
。
RootObject
将包含Results
类型的List<T>
属性,您可以针对该属性执行Count
。
答案 1 :(得分:0)
根据@peinearydevelopment的建议,此解决方案最有效
var count = (taxonomy.JSONStructure["results"] as JArray).Count();