Çok açık bir şeyi gözden kaçırdıysam; Sadece jq
'u buldum ve çevreleyen verileri etkilemeden bir JSON değerini güncellemek için kullanmaya çalışıyorum.jq? Kullanarak bir json belgesindeki tek bir değeri nasıl güncelleştiririm?
Bir curl
sonucunu jq
içine pipetlemek istiyorum, bir değeri güncelleyin ve güncellenmiş JSON'u curl -X PUT
numaralı numaraya pipetleyin.
curl http://example.com/shipping.json | jq '.' field: value | curl -X PUT http://example.com/shipping.json
gibi bir şey Şimdiye kadar bir araya sed
kullanarak, fakat jq
içinde |=
operatörün birkaç örnek baktıktan sonra ben bu gerekmez eminim kesmek ettik.
İşte bir JSON örneğidir - "local": false
'u ayarlamak için jq
'u nasıl kullanabilirim?
{
"shipping": {
"local": true,
"us": true,
"us_rate": {
"amount": "0.00",
"currency": "USD",
"symbol": "$"
}
}
}
Gerçekten de, yalnızca komutun kısmi sözdizimini değil, tam komut satırı kullanımını gösteren tam bir örnek vermiş olsaydınız. :-( – MikeSchinkel
@MikeSchinkel: Şunun gibi bir şey demek istiyorsun: curl http: // ... | jq '.shipping.local = false' | curl -X PUT http: // ... '? Veya belki de:' curl http: // ... | jq --arg prop yerel '.shipping [$ prop] = false' | curl -X PUT http: // ... 'Herkesin sorunlarını tahmin edemem ve kaşıklanmış çözümler sunamam her biri için, yapı taşlarını sadece bir çözüme götürürüm. –
@JeffMercado Örnek olarak tam bir 'jq' komutunu kastettim, yani: 'jq' .shipping.local = false 'my-data Ayrıca, yorumumun tonu için özür dilerim, yeniden okuduğumu agresif olarak görüyorum ama bu benim niyetim değildi. – MikeSchinkel