如何通过键值获取JSON数组中的特定节点值
How to get specific node value in JSON array by key value
使用JSON.NET。如何从节点中的另一个元素识别值?
在此示例中,value (例如 22) 在 key = "b" 的节点中如何被读到?
(假设“b”是唯一的或仅获取第一个实例)
{
"data": [
{
"id": 1,
"key": "a",
"value": "11"
},
{
"id": 2,
"key": "b",
"value": "22"
},
{
"id": 3,
"key": "c",
"value": "33"
}
]
}
我假设有必要遍历 key = "b" 的每个数组项并读取该迭代中的值,除非有一种方法可以根据键直接定位节点?
VB - 无效示例
json已经被反序列化为对象
Dim Results As Batch = JsonConvert.DeserializeObject(Of Batch)(response)
For Each item In Results.data.Where(Function(obj) obj("key").Value(Of String)() = "b")
Dim DataVal as String = obj("value").Value
Next
Dim firstFromValue = JToken.Parse(response)("data").FirstOrDefault(Function(d) d("key") = "b").value
使用JSON.NET。如何从节点中的另一个元素识别值?
在此示例中,value (例如 22) 在 key = "b" 的节点中如何被读到?
(假设“b”是唯一的或仅获取第一个实例)
{
"data": [
{
"id": 1,
"key": "a",
"value": "11"
},
{
"id": 2,
"key": "b",
"value": "22"
},
{
"id": 3,
"key": "c",
"value": "33"
}
]
}
我假设有必要遍历 key = "b" 的每个数组项并读取该迭代中的值,除非有一种方法可以根据键直接定位节点?
VB - 无效示例
json已经被反序列化为对象
Dim Results As Batch = JsonConvert.DeserializeObject(Of Batch)(response)
For Each item In Results.data.Where(Function(obj) obj("key").Value(Of String)() = "b")
Dim DataVal as String = obj("value").Value
Next
Dim firstFromValue = JToken.Parse(response)("data").FirstOrDefault(Function(d) d("key") = "b").value