如果我忽略了一些很明显的东西,就可以选择应用程序;我刚刚找到了jq并且正在尝试使用它来更新一个JSON值而不影响周围的数据。
jq
我想将curl结果传送到jq,更新值,然后将更新的JSON传送到curl -X PUT。就像是
curl
curl -X PUT
curl http://example.com/shipping.json | jq '.' field: value | curl -X PUT http://example.com/shipping.json
到目前为止,我已经使用一起破解了它sed,但是在查看了一些|=运算符示例之后,jq我确定我不需要这些。
sed
|=
这是一个JSON示例- 在保留其余JSON的同时,如何使用jqset "local": false?
"local": false
{ "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