我有以下JSON结构:
{
"key" : "value",
"array" : [
{ "key" : 1 },
{ "key" : 2, "misc": {
"a": "Apple",
"b": "Butterfly",
"c": "Cat",
"d": "Dog"
} },
{ "key" : 3 }
],
"tokenize" : {
"firstkey" : {
"token" : 0
},
"secondkey" : {
"token" : 1
},
"thirdkey" : {
"token" : 0
}
}
}
我可以通过以下语法遍历上面的结构,直到array-> dictionary-> b:
$.array[?(@.key=2)].misc.b
现在我需要打印所有值为0的标记。与上面显示的方法相同,我可以遍历$ .array [?(@。key = 2)]。tokenize。
如何查询它以打印具有令牌的所有值:0。
准确地说,我希望输出显示为:
[
"tokenize" : {
"firstkey" : {
"token" : 0
},
"thirdkey" : {
"token" : 0
}
}
]
以下查询已经显示了我想要的内容,但它没有显示键(在这种情况下为“firstkey”和“thirdkey”)。
$.tokenize[?(@.token == 0)]
请帮我解决这个问题。
感谢。
答案 0 :(得分:1)
您可以尝试使用此脚本。
$.tokenize[?(@.token == 0)].token
结果:
[
0,
0
]
答案 1 :(得分:0)
$.tokenize[?(@.token == 0)]~
将输出
[
"firstkey",
"thirdkey"
]
对于OP的示例json,请使用https://jsonpath-plus.github.io/JSONPath/demo/来验证您的数据。