我有一个简单的JSON文件,我需要获取令牌的值,我尝试使用SelectToken,但问题是元素的名称是动态的.这是我的JSON文件
{
"name": "testdata",
"items": {
"myItemName": {
"located": true
}
}
}
Run Code Online (Sandbox Code Playgroud)
我需要获取"locate"的值(上图),如果你看到元素名称"myItemName",这是动态的而不是固定的.所以我尝试使用SelectToken的点符号.
我想出了类似的东西,但它没有用 - 问题是[0]
bool located = (bool)jsonObject.SelectToken("items.[0].located");
Run Code Online (Sandbox Code Playgroud)
在Items中,可以有多个动态元素,例如,这是有效的.
{
"name": "testdata",
"items": {
"myItemName": {
"located": true
},
"myOtherItemName": {
"located": true
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以看上面,你可以看到我有"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);
}
Run Code Online (Sandbox Code Playgroud)
输出:
myItemName = True
myOtherItemName = True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8419 次 |
| 最近记录: |