我有一个简单的JSON文件,我需要它来获取令牌的值,我尝试过使用SelectToken,但问题是元素的名称是动态的。这是我的JSON文件
{
"name": "testdata",
"items": {
"myItemName": {
"located": true
}
}
}
我需要得到"located"(上面)的值,如果你看到元素名称"myItemName",这是动态的,不是固定的。所以我确实尝试过使用SelectToken的点号。
我想出了这样的办法,但没有奏效——问题是[0]
bool located = (bool)jsonObject.SelectToken("items.[0].located");
在Items中,可以有多个动态元素,因此例如,这是有效的。
{
"name": "testdata",
"items": {
"myItemName": {
"located": true
},
"myOtherItemName": {
"located": true
}
}
}
因此,从上面看,你可以看到我有"myItemName"one_answers"myOtherItemName",我想使用某种foreach 来获得每个项目中"located"的值
这有可能吗?使用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