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