gpt4 book ai didi

json - 获取值如果对象或字符串如果 jq 数组中的字符串

转载 作者:行者123 更新时间:2023-12-05 08:45:27 24 4
gpt4 key购买 nike

我有一个如下所示的 JSON 对象:

[{"name":"NAME_1"},"NAME_2"]

我想要一个输出

["NAME_1", "NAME_2"]

数组中的一些条目是一个带有键“name”的对象,一些只是名称的字符串。我正在尝试提取一组名称。使用

jq -cr '.[].name // []'

在尝试索引字符串对象的 .name 时抛出错误。有没有办法检查它是否是一个字符串,如果是,就使用它的值而不是 .name?

最佳答案

echo '[{"name":"NAME_1"},"NAME_2"]' \
| jq '[ .[] | if (.|type) == "object" then .name else . end ]'
[
"NAME_1"
"NAME_2"
]

引用:


正如@LéaGris 评论的那样,一个更简单的版本

jq '[ .[] | .name? // . ]' file

关于json - 获取值如果对象或字符串如果 jq 数组中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72801812/

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