所以我有这个:
jq -r '.letters[0].secondary_letters[0] | "\(.name)"' letters.json
输出:
a
aa
我希望他们成为:a,aa
json看起来像:
"secondary_letters": [
{
"id": 1,
"name": "a"
},
{
"id": 2,
"name": "aa"
}
可能还有更多,因此jq命令应该能够提取所需的子节点数。
可以吗?
答案 0 :(得分:2)
假设输入已被更正,因此它是有效的JSON,
jq -r '.secondary_letters | map(.name) | join(", ")'
产生
a, aa
同样的过滤器也满足一般性要求。
答案 1 :(得分:0)
jq -r '.secondary_letters | map(.name)' letters.json
==> ["a" , "aa"]
如果您需要更多属性,.i.e:id:
jq -r '.secondary_letters | map(.name, .id)' letters.json
==> ["a" , 1, "aa", 2]
答案 2 :(得分:0)
简单 jq 方法:
jq -r '[.secondary_letters[].name] | join(", ")' letters.json
输出:
a, aa