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

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



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



РезультатИзвлечённое значение. Если путь указывает на один элемент, возвращается сам элемент. Если путь выбирает несколько элементов через фильтр, срез, wildcard или рекурсивный поиск, возвращается массив найденных элементов.JSON[{"price":150}]

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

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

В Java-версии поддерживается расширенный синтаксис JSONPath:

В фильтрах можно использовать сравнения ==, !=, >, >=, <, <=, логические операторы &&, ||, !, строки, числа, true, false и null.

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

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

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

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

Ошибки

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

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

СценарийОписаниеПараметр: значениеРезультат
Успешное выполнениеПолучить значение поля по точному путиИсходный JSON: {"user":{"name":"Alex"}} JSONPath: $.user.name"Alex"
Успешное выполнениеПолучить элементы по фильтруИсходный JSON: {"items":[{"price":50},{"price":150}]} JSONPath: $.items[?(@.price > 100)][{"price":150}]
Успешное выполнениеНайти элементы массива через containsИсходный JSON: {"items":[{"tags":["sale"]},{"tags":["new"]}]} JSONPath: $.items[?(@.tags contains 'sale')][{"tags":["sale"]}]
Успешное выполнениеПолучить значения рекурсивным поискомИсходный JSON: {"store":{"book":{"price":10},"bike":{"price":20}}} JSONPath: $..price[10,20]
Неуспешное выполнениеПередан некорректный 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, отрицательным индексам и рекурсивному поиску. Также добавлена поддержка множественного результата: если путь выбирает несколько элементов, действие возвращает массив найденных элементов.