我有这个JSON数据:
candidate_MNA
我想在{
"success": true,
"module": {
"data": {
"item_i77f664a2": {
"id": "i77f664a2",
"tag": "item",
"fields": {
"cartItemId": 2012636322
},
"type": "biz"
}
}
}
}
下方添加{"operation":"delete"}
,然后将JSON数据保存到文件中。我想要的结果是这样的:
cartItemId
这就是我的尝试:
{
"success": true,
"module": {
"data": {
"item_i77f664a2": {
"id": "i77f664a2",
"tag": "item",
"fields": {
"cartItemId": 2012636322,
"operation": "delete"
},
"type": "biz"
}
}
}
}
但它没有使用我想要的输出保存JSON数据。我该如何解决?
答案 0 :(得分:2)
这种类型的更新是+=
的魔力发挥作用的地方。根据您的输入,以下调用:
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"。