gpt4 book ai didi

json - 使用 jq 以特定键 boolean == true 提取 JSON 数组中的值?

转载 作者:行者123 更新时间:2023-12-04 02:58:20 25 4
gpt4 key购买 nike

所以我有一个 JSON blob,如下所示:

[
{
'id': 'something',
'isSparse': true
},
...
]

如何写 jq命令将过滤掉这个 JSON blob 并向我打印数组中所有具有 isSparse == true 的条目的 ID?

我尝试了以下方法:
cat <blob> | jq -c '.[] | select(.operational | contains("true"))'
但得到以下,因为显然 true是 bool 值而不是字符串:
jq: error: boolean and string cannot have their containment checked .

最佳答案

如果任务是“打印数组中具有 isSparse == true 的所有条目的 ID”,则适当的 jq 过滤器将是:

.[] | select(.isSparse == true) | .id

如果有任何重复 .id 值的可能性,则可以使用以下方法确保仅发出不同的值:
map( select(.isSparse == true) | .id ) | unique[]

正如@JeffMercado 指出的那样,如果 .isSparse 是严格的 bool 值,那么 select(.isSparse) 就足够了。

关于json - 使用 jq 以特定键 boolean == true 提取 JSON 数组中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35904882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com