如何使用 jq 更新 json 文档中的单个值?

2024-01-09

如果我忽略了一些非常明显的事情,请道歉;我刚刚发现jq我正在尝试使用它来更新一个 JSON 值而不影响周围的数据。

我想通过管道curl结果变成jq,更新一个值,并将更新后的 JSON 通过管道传输到curl -X PUT。就像是

curl http://example.com/shipping.json | jq '.' field: value | curl -X PUT http://example.com/shipping.json

到目前为止,我已经使用它来破解它sed,但是在看了几个例子之后|=运算符在jq我确信我不需要这些。

这是一个 JSON 示例——我将如何使用jq to set "local": false,同时保留 JSON 的其余部分?

{
  "shipping": {
    "local": true,
    "us": true,
    "us_rate": {
      "amount": "0.00",
      "currency": "USD",
      "symbol": "$"
    }
  }
}

您可以使用以下命令设置对象的值=操作员。|=另一方面用于更新值。这是一个微妙但重要的区别。过滤器的上下文发生变化。

由于您要将属性设置为常量值,因此请使用=操作员。

.shipping.local = false

请注意,为属性设置值时,该值不一定必须存在。您可以通过这种方式轻松添加新值。

.shipping.local = false | .shipping.canada = false | .shipping.mexico = true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 jq 更新 json 文档中的单个值? 的相关文章

随机推荐