31
如果我忽视了一些非常明显的事情,我刚刚找到了jq
,并试图使用它来更新一个JSON值而不影响周围的数据。如何使用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": "$"
}
}
}
我真的希望你提供了一个完整的例子来显示完整的命令行用法,而不仅仅是示例的部分语法。 :-( – MikeSchinkel
@MikeSchinkel:你的意思是:'curl http:// ... | jq'.shipping.local = false'| curl -X PUT http:// ...'?或者甚至可以:' curl http:// ... | jq --arg prop local'.shipping [$ prop] = false'| curl -X PUT http:// ...'我无法预料每个人的问题,并提供勺子解决方案对于他们中的每一个人,我只能提供构建模块来寻求解决方案。 –
@JeffMercado我只是指一个完整的'jq'命令作为例子,即:'jq'.shipping.local = false'my-data .json'。另外,对于我的评论的语气感到遗憾,重新阅读它,我发现它遇到了侵略性,但这不是我的意图。 – MikeSchinkel