Development Tip

jq를 사용하여 json 문서의 단일 값을 어떻게 업데이트합니까?

yourdevel 2020. 10. 19. 12:55
반응형

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 샘플입니다 . 나머지 JSON은 유지하면서을 jq설정 "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

참고 URL : https://stackoverflow.com/questions/31034746/how-do-i-update-a-single-value-in-a-json-document-using-jq

반응형