jq-选择后获得更高级别的密钥



给定如下JSON:

{
"data": [{
"id": "1a2b3c",
"info": {
"a": {
"number": 0
},
"b": {
"number": 1
},
"c": {
"number": 2
}
}
}]
}

我想选择一个大于或等于2的数字,对于该选择,我想返回idnumber的值。我是这样做的:

$ 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"
]

最新更新