добавить заполнитель во все объекты по определенному ключу - PullRequest
0 голосов
/ 08 ноября 2019

У меня неправильный json, например:

[
  { "key": 123 },
  [
    { "key": null },
    { "not key": "blah-blah" }
  ]
]

Какой самый эффективный способ добавить запись-заполнитель ("new key": null) во все объекты, имеющие запись "key"? это ожидаемый результат:

[
  { "key": 123, "new key": null },
  [
    { "key": null, "new key": null },
    { "not key": "blah-blah" }
  ]
]

1 Ответ

1 голос
/ 08 ноября 2019

Использование jq 1.6 и его функции walk для рекурсивного изменения объектов JSON:

jq 'walk(if type == "object" and has("key") then . + { "new key" : null } else . end)'

Вы можете попробовать здесь .

работать над jq 1.5:

jq 'def addNewKey: map_values(if type == "object" and has("key") then . + { "new key" : null } elif type=="array" or type=="object" then addNewKey else . end); addNewKey'

Вы можете попробовать здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...