Фильтр community.general.json_diff — создание JSON-патча путем сравнения двух файлов JSON
Примечание
Этот плагин фильтра входит в коллекцию community.general (версия 12.6.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.general. Для использования этого плагина фильтра требуются дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать его в плейбуке, укажите: community.general.json_diff.
Добавлено в community.general 10.3.0
- Краткое описание
- Требования
- Входные данные
- Позиционные параметры
- См. также
- Примеры
- Возвращаемое значение
Краткое описание
- Этот фильтр сравнивает входные данные с аргументом и вычисляет список операций, которые можно передать фильтру community.general.json_patch_recipe, чтобы преобразовать входные данные в аргумент.
Требования
Следующие компоненты должны быть установлены на локальном управляющем узле, выполняющем этот фильтр.
- jsonpatch
Входные данные
Описание входных данных фильтра — значения перед | community.general.json_diff.
Параметр | Комментарии |
|---|---|
Входные данные any / обязательный | Список или словарь, представляющий исходный объект JSON, либо строка, содержащая объект JSON. |
Позиционные параметры
Описание позиционных параметров фильтра. В следующем примере это значения positional1, positional2 и так далее: input | community.general.json_diff(positional1, positional2, ...)
Параметр | Комментарии |
|---|---|
target any / обязательный | Список или словарь, представляющий целевой объект JSON, либо строка, содержащая объект JSON. |
См. также
См. также
- RFC 6902
-
Патч JavaScript Object Notation (JSON)
- RFC 6901
-
Указатель JavaScript Object Notation (JSON)
- Пакет jsonpatch для Python
-
Библиотека Python для применения JSON-патчей
Примеры
- name: Compute a difference
ansible.builtin.debug:
msg: "{{ input | community.general.json_diff(target) }}"
vars:
input: {"foo": 1, "bar":{"baz": 2}, "baw": [1, 2, 3], "hello": "day"}
target: {"foo": 1, "bar": {"baz": 2}, "baw": [1, 3], "baq": {"baz": 2}, "hello": "night"}
# => [
# {"op": "add", "path": "/baq", "value": {"baz": 2}},
# {"op": "remove", "path": "/baw/1"},
# {"op": "replace", "path": "/hello", "value": "night"}
# ]
Возвращаемое значение
Ключ | Описание |
|---|---|
Возвращаемое значение list / элементы=dictionary | Список операций JSON Patch для применения. Возвращается: при успешном выполнении |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/json_diff_filter.html