Linux Обновление JSON с массивом - PullRequest
1 голос
/ 10 марта 2020

Как мне обновить JSON массивом, вложенным внутрь? Я застрял, пытаясь с помощью JQ. Он обрезает элементы в «b», поэтому внутри него находится только 1.

jq '.items[1].b."1" = "changed"' <<< cat file.json

Так, например, если a json, то следующее выглядит так:

{
    "href": "1234",
    "list": [{
        "a": {
            "dummy": "thing"
        },
        "b": {
            "0": "thing",
            "1": "thing", <--- ex. I want to change this
            "2": "thing"
        }
    }]
}

Желаемый результат

# Result that I want
{
    "href": "1234",
    "list": [{
        "a": {
            "dummy": "thing"
        },
        "b": {
            "0": "thing",
            "1": "changed", <--- this changed
            "2": "thing"
        }
    }]
}

1 Ответ

2 голосов
/ 10 марта 2020

Вы бы попробовали следующее:

jq '(.list[].b."1")="changed"' file.json

Вывод:

{
  "href": "1234",
  "list": [
    {
      "a": {
        "dummy": "thing"
      },
      "b": {
        "0": "thing",
        "1": "changed",
        "2": "thing"
      }
    }
  ]
}
...