如何使用jq命令将字段添加到JSON对象?

时间:2018-04-03 14:24:50

标签: json jq

我有这个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数据。我该如何解决?

1 个答案:

答案 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"。

相关问题