Свойство | Описание | Тип | Пример | Обязательность |
|---|---|---|---|---|
| Параметры | ||||
| Исходный JSON | Текст в формате JSON, в котором необходимо обновить данные. Должен быть валидным JSON-документом. | JSON | { "id": 67890, "name": "Рик Санчез", "email": "rick@example.com", "isActive": true, "subscriptions": ["web"] } | Да |
| JSONPath | Выражение JSONPath для указания узлов, которые необходимо обновить (например, $.items[?(@.price > 100)]). | Строка | $.subscriptions[1] | Да |
| Значение | Новое значение для установки. Поддерживает типы: JSON, Строка, Число, Логическое, Словарь (Объект), Коллекция (Массив). Строковые значения вставляются как JSON-строки (в кавычках), без попытки парсинга в объект. | Объект | mobile | Да |
| Результаты | ||||
Результат | Измененная JSON-строка после обновления указанных узлов. | JSON | { "id": 67890, "name": "Рик Санчез", "email": "rick@example.com", "isActive": true, "subscriptions": ["web", "mobile"] } | - |
(Больше примеров – в действии «Получить значение из JSON»)
| Сценарий | Желаемый синтаксис (не работает) | Рабочий синтаксис (Newtonsoft.Json) |
|---|---|---|
| Обновление элемента массива по значению | $.items[?(@.tags contains 'sale')] | $.items[?(@.tags[*] == 'sale')] |
| Обновление объектов по подстроке | $.users[?(@.name contains 'test')] | $.users[?(@.name =~ /test/i)] |
| Исключение | Событие | Описание ошибки в логе |
|---|---|---|
| Robin.Exception.ValidationError | Входная строка параметра «Исходный JSON» не является корректным JSON-документом. | Обрабатываемый JSON некорректен. |
| Robin.Exception.ValidationError | Выражение в параметре «JSONPath» содержит синтаксическую ошибку. | JSONPath содержит синтаксическую ошибку: <текст исключения от библиотеки-парсера> |
| Robin.Exception.ValidationError | Ошибка компиляции регулярного выражения в фильтре JSONPath. | Некорректное регулярное выражение в JSONPath: <текст ошибки> |
| Robin.Exception.ValidationError | Невозможно преобразовать параметр «Значение» в формат JSON (неподдерживаемый тип данных). | Невозможно преобразовать параметр «Значение» в формат JSON: <текст ошибки> |
| Robin.Exception.JSONException | Критическая ошибка внутреннего движка при модификации структуры. | Внутренняя ошибка обработки JSONPath: <текст ошибки> |
| Robin.Exception.ElementNotFound | Выражение JSONPath синтаксически верно, но не нашло ни одного узла для обновления (или путь частично не существует). | Элементы по пути не найдены. |