JQ - Добавить объекты из файла в массив JSON

Здесь та же проблема. Использовал эту ссылку, и теперь она отлично работает. Хотя обновление до последней версии Ubuntu тоже исправляет это. http://itsfoss.com/fix-brightness-ubuntu-1310/

9
07.08.2018, 10:38
3 ответа

jq имеет флаг для подачи фактического содержимого JSON с флагом --argjson. Что вам нужно сделать, так это сохранить содержимое первого файла JSON в переменной в контексте jqи обновить его во втором JSON

.
jq --argjson groupInfo "$(<input.json)" '.[].groups += [$groupInfo]' orig.json

Часть "$(<input.json)"является оболочкой re -конструкции направления для вывода содержимого заданного файла и с аргументом --argjsonсохраняется в переменной groupInfo. Теперь вы добавляете его в массив groupsв фактической части фильтра.

Иными словами, приведенное выше решение эквивалентно этому

jq --argjson groupInfo '{"id": 9,"version": 0,"lastUpdTs": 1532371267968,"name": "Training" }' \
   '.[].groups += [$groupInfo]' orig.json
14
27.01.2020, 20:05

Новые версии jqподдерживаютslurpfile

Это позволяет достичь желаемого результата:jq '.[].groups += $inputs' orig.json --slurpfile inputs input.json

Проверено в jq 1.6

3
04.08.2020, 00:01

Использовать точку в качестве заполнителя

echo '{
  "id": 9,
  "version": 0,
  "lastUpdTs": 1532371267968,
  "name": "Training"
}' | jq '[
  {
    "name": "JAYS",
    "sourceConnection": {
      "name": "ORACLE_connection",
      "connectionType": "JDBC",
      "commProtocol": "JDBC"
    },
    "checked": true,
    "newlyAdded": false,
    "id": null,
    "groups": [.],
    "displayName": "SCOTT",
    "defaultLevel": "MANAGED"
  }
]'

Выход:

[
  {
    "name": "JAYS",
    "sourceConnection": {
      "name": "ORACLE_connection",
      "connectionType": "JDBC",
      "commProtocol": "JDBC"
    },
    "checked": true,
    "newlyAdded": false,
    "id": null,
    "groups": [
      {
        "id": 9,
        "version": 0,
        "lastUpdTs": 1532371267968,
        "name": "Training"
      }
    ],
    "displayName": "SCOTT",
    "defaultLevel": "MANAGED"
  }
]
jq --version
jq-1.6
0
28.01.2021, 05:42

Теги

Похожие вопросы