设置多个值
Set multiple values
鉴于此文件
{
"[global]": {
"current": "",
"hash": ""
}
}
我想要这个输出:
{
"[global]": {
"current": "alpha",
"hash": "bravo"
}
}
我有这个工作命令:
jq '."[global]".current="alpha" | ."[global]".hash="bravo"' example.json
不过,我不想重复 ."[global]"
部分。我试过这个
命令,但它只是输入的 returns 部分:
$ jq '."[global]" | .current="alpha" | .hash="bravo"' example.json
{
"current": "alpha",
"hash": "bravo"
}
对象的multiplication递归合并两者。您可以将 [global]
对象与具有新值的对象合并。结果中将使用 RHS 上的字符串值。
."[global]" *= { current: "alpha", hash: "bravo" }
加法也适用于此,但乘法通常更有用,尤其是对于嵌套对象。不是替换相应的对象,而是将它们合并。
如Jeff 所示,非递归+=
运算符也适用于这种情况。具体来说:
."[global]" += {current: "alpha", hash:"bravo"}
鉴于此文件
{
"[global]": {
"current": "",
"hash": ""
}
}
我想要这个输出:
{
"[global]": {
"current": "alpha",
"hash": "bravo"
}
}
我有这个工作命令:
jq '."[global]".current="alpha" | ."[global]".hash="bravo"' example.json
不过,我不想重复 ."[global]"
部分。我试过这个
命令,但它只是输入的 returns 部分:
$ jq '."[global]" | .current="alpha" | .hash="bravo"' example.json
{
"current": "alpha",
"hash": "bravo"
}
对象的multiplication递归合并两者。您可以将 [global]
对象与具有新值的对象合并。结果中将使用 RHS 上的字符串值。
."[global]" *= { current: "alpha", hash: "bravo" }
加法也适用于此,但乘法通常更有用,尤其是对于嵌套对象。不是替换相应的对象,而是将它们合并。
如Jeff 所示,非递归+=
运算符也适用于这种情况。具体来说:
."[global]" += {current: "alpha", hash:"bravo"}