我有一个JSON对象,如下所示:
[{"name":"NAME_1"},"NAME_2"]
我想要输出
["NAME_1", "NAME_2"]
数组中的一些条目是一个带有键"name"的对象,而有些条目只是名称的字符串.我正在try 提取一组名称.使用
jq -cr '.[].name // []'
try 索引时引发错误.字符串对象的名称.是否有方法判断它是否是字符串,如果是,请使用其值,而不是.名称
我有一个JSON对象,如下所示:
[{"name":"NAME_1"},"NAME_2"]
我想要输出
["NAME_1", "NAME_2"]
数组中的一些条目是一个带有键"name"的对象,而有些条目只是名称的字符串.我正在try 提取一组名称.使用
jq -cr '.[].name // []'
try 索引时引发错误.字符串对象的名称.是否有方法判断它是否是字符串,如果是,请使用其值,而不是.名称
echo '[{"name":"NAME_1"},"NAME_2"]' \
| jq '[ .[] | if (.|type) == "object" then .name else . end ]'
[
"NAME_1"
"NAME_2"
]
裁判:
作为@Léagris comments ,一个简单的版本
jq '[ .[] | .name? // . ]' file