Все ноды/Data/JSON
Установить JSON-поле
Устанавливает значение по JSONPath-пути в объекте. Принимает исходный JSON (порт 'json') и новое значение (порт 'value'), возвращает изменённый объект. Путь формата $.user.name.
Тип в графе: json_set
Exec
Можно включить ветку ошибки (expose_error_output) и обработать сбой отдельным путём.
Порты можно разделить на исполнение и данные (split ports).
Как попробовать
Минимальный рабочий воркфлоу
- Исполнение + данные
Запускается сразу
Как применять
Нода меняет одно поле объекта и возвращает изменённую копию: проставить статус в ответе API, дописать идентификатор сессии в тело запроса, подменить поле перед отправкой дальше. Если полей несколько и они уже собраны в объект — это JSON-слияние. Если нужен текст, а не объект, — Шаблон. Если преобразование сложнее одного присваивания (перебрать массив, посчитать, переименовать ключи) — берите JavaScript-код.
Как это работает
Исходный объект приходит в порт «JSON». Если он не подключён, нода берёт то, что пришло в порт «Input» — то есть объект можно просто провести по основной цепочке. Новое значение приходит в порт «Value».
Путь записывается через точку: user.name или $.user.name — ведущий $. необязателен.
Недостающие объекты по пути создаются: путь user.name на пустом объекте даст
{"user": {"name": …}}. Исходный объект не мутирует, вниз уходит копия, поэтому нода,
стоящая выше, продолжает отдавать своё прежнее значение.
Частые ошибки
- Индексы массивов не работают.
items[0].xне найдёт нулевой элемент, а создаст поле с именемitems[0]. Для массивов используйте JavaScript-код. - Путь не шаблонизируется. Поле «Путь» берётся буквально,
{{ … }}в нём не подставляется — динамический путь придётся собирать в JavaScript-коде. - Не подключённый «Value» пишет пустое значение. Нода при этом успешна: в поле окажется
null, и ошибка всплывёт где-то ниже. - Если по пути лежит не объект, запись молча не происходит. Когда промежуточный сегмент оказывается строкой или массивом, нода возвращает исходный объект без изменений.
- Совсем без исходного объекта нода падает. Если ни «JSON», ни «Input» ничего не принесли, шаг завершается ошибкой — это лучше, чем создать объект из воздуха.
Входы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
Inputinput | Исполнение + данныеexecute_data | — | Run trigger; its payload is used as the source object when the JSON port is not connected. |
JSONjson | Данныеdata | — | Source object |
Valuevalue | Данныеdata | — | New value to set |
Выходы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
Resultoutput | Исполнение + данныеexecute_data | object |
Настройки
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Путьpath | string | $.field | Точечный путь к полю, напр. user.name или $.user.name (ведущий $. необязателен). Индексы массивов не поддерживаются. |
Общие поля
Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.
expose_error_output— Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этого шага.split_ports_in— Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.split_ports_out— Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.