如何向输出添加字面值:JQ

5

感谢您与我一同查看这个内容。

我正在使用JQ来操作JSON文件。

开始使用以下代码,它可以正常工作:

jq ".[]|{name:.name,type:.type}" r.json

需要将"acct"和字面值"acct1"包含在生成的json中。
我知道可以用两行代码实现。
jq '.[]+{acct:"acct1"}' r.json > r2.json
jq "{acct:.acct,name:.name,type:.type}" r2.json > r.json

有没有一行代码的方式可以内联执行此操作,就像这样(不起作用)?
jq '.[]|{acct:"acct1",name:.name,type:.type}' r.json

感谢您关注这个问题。

jq和jmespath是不同的语言/工具。看起来你正在使用jq - 你可能想要稍微修改一下这个问题(并使用jq网站作为参考!)。 - james.haggerty
我从问题中删除了jmespath。 - Steven Fowler
2个回答

1
一个更经济的方法来实现我所理解的您想要的是:
jq '.[]|{name,type, acct:"acct1"}' r.json

顺便提一下,在 Q 中的第一个过滤器 (.[]|{name:.name,type:.type}) 可以缩写为:

.[]|{name,type}

0

我要找的答案是

jq '.[]+{acct:"acct1"}|{acct:.acct,name:.name,type:.type}" r2.json > r.json

刚学会如何使用 | 符号 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接