给定如下JSON:
{
"data": [{
"id": "1a2b3c",
"info": {
"a": {
"number": 0
},
"b": {
"number": 1
},
"c": {
"number": 2
}
}
}]
}
我想选择一个大于或等于2的数字,对于该选择,我想返回id
和number
的值。我是这样做的:
$ jq -r '.data[] | .id as $ID | .info[] | select(.number >= 2) | [$ID, .number]' in.json
[
"1a2b3c",
2
]
现在我还想返回一个更高级别的密钥供我选择,在我的情况下,我需要返回c
。我怎样才能做到这一点?
假设输出中需要字符串"c"
而不是2
,这将起作用:
$ jq '.data[] | .id as $ID | .info | to_entries[] | select(.value.number >= 2) | [$ID, .key]' input.json
[
"1a2b3c",
"c"
]