鉴于此文件
{
"[global]": {
"current": "",
"hash": ""
}
}
我想要这个输出:
{
"[global]": {
"current": "alpha",
"hash": "bravo"
}
}
我有这个工作命令:
jq '."[global]".current="alpha" | ."[global]".hash="bravo"' example.json
但我宁愿不必重复."[global]"
部分。我试过这个
命令,但它只返回部分输入:
$ jq '."[global]" | .current="alpha" | .hash="bravo"' example.json
{
"current": "alpha",
"hash": "bravo"
}
答案 0 :(得分:3)
对象的multiplication以递归方式合并两者。您可以将[global]
对象与具有新值的对象合并。 RHS上的字符串值将用于结果中。
."[global]" *= { current: "alpha", hash: "bravo" }
Addtion也适用于此,但乘法通常更有用,特别是对于嵌套对象。它们不是替换相应的对象,而是合并它们。
答案 1 :(得分:0)
如Jeff所示,非递归+=
运算符也适用于这种情况。具体做法是:
."[global]" += {current: "alpha", hash:"bravo"}