我有这个 JSON 数据:
{
"success": true,
"module": {
"data": {
"item_i77f664a2": {
"id": "i77f664a2",
"tag": "item",
"fields": {
"cartItemId": 2012636322
},
"type": "biz"
}
}
}
}
我想在
{"operation":"delete"}
正下方添加 cartItemId
,然后将 JSON 数据保存到文件中。我想要的结果是这样的:{
"success": true,
"module": {
"data": {
"item_i77f664a2": {
"id": "i77f664a2",
"tag": "item",
"fields": {
"cartItemId": 2012636322,
"operation": "delete"
},
"type": "biz"
}
}
}
}
这是我尝试过的:
jq '.module.data.item_i77f664a2.fields + {"operation":"delete"}' > data.json
但它不会像上面那样保存带有我想要的输出的 JSON 数据。我如何解决它 ?
最佳答案
这种类型的更新是 +=
的魔力发挥作用的地方。根据您的输入,以下调用:
jq '.module.data.item_i77f664a2.fields += {"operation":"delete"}'
产生你想要的输出:
{
"success": true,
"module": {
"data": {
"item_i77f664a2": {
"id": "i77f664a2",
"tag": "item",
"fields": {
"cartItemId": 2012636322,
"operation": "delete"
},
"type": "biz"
}
}
}
}
但是,我不确定这会在类似情况下产生您想要的结果,因为您已经引用了“item_i77f61ee2”。
关于json - 如何使用 jq 命令向 JSON 对象添加字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49632521/