【发布时间】:2021-07-16 15:20:26
【问题描述】:
我正在尝试将变量属性添加到一些现有的 json 中
{
"item1": {
"proerty1": "test"
},
"item2": {}
}
所以如果我做这样的事情它会起作用
echo $contents | jq --arg ITEM1 $item1 '.[$ITEM1].property2 = "test2"'
但是当我尝试添加更多这样的参数时它失败了:
echo $contents | jq --arg ITEM1 $item1 --arg PROPERTY2 $property2 --arg VALUE $value '.[$ITEM1].[PROPERTY2] = $VALUE'
我得到的错误是:
jq: error: syntax error, unexpected '[', expecting FORMAT or QQSTRING_START (Unix shell quoting issues?) at <top-level>, line 1:
.[$ITEM1].[PROPERTY2] = $VALUE
jq: 1 compile error
所以我猜 += 运算符不会是使用变量执行此操作的正确方法。在整个路径 .item.property 和值本身是可变的情况下,添加属性的正确方法是什么
【问题讨论】:
标签: json syntax environment-variables jq