我有一个简单的JSON blob,如下所示:
{
"thing_one": 223,
"thing_two": 0,
"thing_three": 0,
"thing_four": 69,
"thing_five": 14,
"thing_six": 0
}
我想选择值为>的键。 10.我希望我的jq
命令的输出返回一个列表,其中只包含符合此条件的键。在上面的示例中,它将返回"thing_one, thing_four, thing_five"
。这样做的最佳方式是什么?
答案 0 :(得分:0)
类似的东西:
csrftoken
答案 1 :(得分:0)
to_entries[] | select( .value>10 ) | .key
生成密钥流:
"thing_one"
"thing_four"
"thing_five"
使用-r命令行选项删除引号。
要拓宽视野,请考虑以下方案:
keys[] as $key
| if .[$key] > 10 then $key else empty end
使用foreach
:
foreach keys[] as $key (.; .; if .[$key] > 10 then $key else empty end)
至于最好的,我认为你会发现上面的第二个选择是jq中表现最佳的可能性最简洁。
答案 2 :(得分:0)
以下是使用 delpaths 和路径删除值< = 10
的解决方案delpaths([paths(. <= 10)])