Параметры и их настройки

СвойствоОписаниеТипПример заполненияОбязательность заполнения поля
Параметры



Исходный JSONТекст в формате JSON, в котором необходимо удалить данные. Должен быть валидным JSON-документом.JSON{"items":[{"price":50},{"price":150}]}Да
JSONPathВыражение JSONPath для указания узлов, которые необходимо удалить.Строка$.items[?(@.price > 100)]Да
Результаты



РезультатИзменённая JSON-строка после удаления указанных узлов.JSON{"items":[{"price":50}]}

Особые условия использования

Путь в параметре «JSONPath» должен начинаться с символа $.

Действие удаляет все данные, найденные по указанному пути. Если путь выбирает несколько элементов через фильтр, срез, wildcard или рекурсивный поиск, будут удалены все найденные элементы.

В Java-версии поддерживается расширенный синтаксис JSONPath: индексы массивов, отрицательные индексы, срезы, wildcard, рекурсивный поиск и фильтры.

Для поиска вхождения в Java-версии можно использовать ключевое слово contains, например $.products[?(@.tags contains 'sale')].

Операторы в фильтрах нужно отделять пробелами от значений. Используйте @.price == 50, а не @.price==50.

Если в выражении для элемента массива пропустить закрывающую скобку, например указать $.items[1, Java-версия воспринимает путь как обращение ко всему списку $.items. В действии удаления это может привести к удалению всего списка, выбранного таким выражением.

Если путь корректен, но данные для удаления не найдены, действие завершается ошибкой «Элементы по пути не найдены».

Ошибки

СобытиеОписание ошибки в логе
1Параметр «Исходный JSON» содержит некорректный JSON.Обрабатываемый JSON некорректен.
2Параметр «JSONPath» не начинается с $ или содержит синтаксическую ошибку.JSONPath содержит синтаксическую ошибку: <текст ошибки>.
3По указанному пути не найдено ни одного значения для удаления.Элементы по пути не найдены.
4В фильтре JSONPath указано некорректное регулярное выражение.Некорректное регулярное выражение в JSONPath: <текст ошибки>.
5Возникла внутренняя ошибка обработки JSONPath.Внутренняя ошибка обработки JSONPath: <текст ошибки>.

Сценарии использования

СценарийОписаниеПараметр: значениеРезультат
Успешное выполнениеУдалить поле по точному путиИсходный JSON: {"user":{"name":"Alex","temp":true}} JSONPath: $.user.temp{"user":{"name":"Alex"}}
Успешное выполнениеУдалить элемент массива по индексуИсходный JSON: {"items":[10,20,30]} JSONPath: $.items[1]{"items":[10,30]}
Успешное выполнениеУдалить все элементы по фильтруИсходный JSON: {"items":[{"price":50},{"price":150},{"price":50}]} JSONPath: $.items[?(@.price == 50)]{"items":[{"price":150}]}
Успешное выполнениеУдалить элементы через containsИсходный JSON: {"products":[{"tags":["sale"]},{"tags":["new"]}]} JSONPath: $.products[?(@.tags contains 'sale')]{"products":[{"tags":["new"]}]}
Неуспешное выполнениеПередан некорректный JSONИсходный JSON: {"broken": json} JSONPath: $.brokenДействие завершилось с ошибкой №1.
Неуспешное выполнениеJSONPath не начинается с $Исходный JSON: {"items":[1,2]} JSONPath: items[0]Действие завершилось с ошибкой №2.
Неуспешное выполнениеДанные для удаления не найденыИсходный JSON: {"items":[{"price":50}]} JSONPath: $.items[?(@.price > 100)]Действие завершилось с ошибкой №3.

Изменения в версии

По сравнению с предыдущей Java-версией действие поддерживает полноценный JSONPath вместо ограниченного синтаксиса пути через /.

Теперь пользователь может удалять данные по фильтрам, срезам, wildcard, отрицательным индексам и рекурсивному поиску. Если путь выбирает несколько элементов, действие удаляет все найденные элементы и возвращает изменённый JSON.

  • Нет меток