gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 12:43:34 28 4
gpt4 key购买 nike

抱歉,如果我忽略了一些非常明显的事情;我刚刚找到 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 设置 "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

关于json - 如何使用 jq 更新 json 文档中的单个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31034746/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com