Json.Net:使用SelectToken获取值而不知道元素名称?
发布时间:2020-12-16 19:48:52 所属栏目:百科 来源:网络整理
导读:我有一个简单的 JSON文件,我需要获取令牌的值,我尝试使用SelectToken,但问题是元素的名称是动态的.这是我的JSON文件 { "name": "testdata","items": { "myItemName": { "located": true } }} 我需要获
我有一个简单的
JSON文件,我需要获取令牌的值,我尝试使用SelectToken,但问题是元素的名称是动态的.这是我的JSON文件
{ "name": "testdata","items": { "myItemName": { "located": true } } } 我需要获取“locate”(上图)的值,如果你看到元素名称“myItemName”,这是动态的而不是固定的.所以我尝试使用SelectToken的点符号. 我想出了类似的东西,但它没有用 – 问题是[0] bool located = (bool)jsonObject.SelectToken("items.[0].located"); 在Items中,可以有多个动态元素,例如,这是有效的. { "name": "testdata","items": { "myItemName": { "located": true },"myOtherItemName": { "located": true } } } 所以看上面,你可以看到我有“myItemName”和“myOtherItemName”,我希望使用someach的foreach获取每个中“locate”的值 这是可能吗 ?使用SelectToken? 谢谢
尝试这个:
string json = @" { ""name"": ""testdata"",""items"": { ""myItemName"": { ""located"": true },""myOtherItemName"": { ""located"": true } } }"; JObject jsonObject = JObject.Parse(json); foreach (JProperty prop in jsonObject.SelectToken("items")) { string name = prop.Name; bool value = (bool)prop.Value.SelectToken("located"); Console.WriteLine(name + " = " + value); } 输出: myItemName = True myOtherItemName = True (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |