在一个非常简单的意义上,我想获取一个现有的 JSON 对象并使用
jq
为其添加/更新两个附加值。例如
开始 | 结果 |
---|---|
|
|
|
|
|
|
|
|
我可以使用两个背靠背命令来设置
a
或 b
,如下所示 echo {} | jq '.a=1' | jq '.b=2'
。但我想知道是否有一种方法可以只进行一次 jq
调用来完成这两项操作?
是的——您可以在单个表达式中用逗号分隔多个字段分配
echo {} | jq '.a = 1, .b = 2'
采用空 JSON,设置
a
和 b
。无论输入如何,jq 都会覆盖这些值(如果存在)。
echo {} | jq '.a = 1, .b = 2'
# Output: {"a":1,"b":2}
{"a":42}
开始:echo '{"a":42}' | jq '.a = 1, .b = 2'
# Output: {"a":1,"b":2}
{"a":"hello"}
echo '{"a":"hello"}' | jq '.a = 1, .b = 2'
# Output: {"a":1,"b":2}