Все ноды/Data/JSON

Установить JSON-поле

Устанавливает значение по JSONPath-пути в объекте. Принимает исходный JSON (порт 'json') и новое значение (порт 'value'), возвращает изменённый объект. Путь формата $.user.name.

Установить JSON-поле
InputResult
JSON
Value

Тип в графе: json_set

Exec

Можно включить ветку ошибки (expose_error_output) и обработать сбой отдельным путём.

Порты можно разделить на исполнение и данные (split ports).

Как попробовать

Минимальный рабочий воркфлоу

Вход
Установить JSON-поле
Выход
  • Исполнение + данные
Нажмите «Скопировать ноды», откройте редактор и нажмите Ctrl+V на холсте.

Запускается сразу

Как применять

Нода меняет одно поле объекта и возвращает изменённую копию: проставить статус в ответе 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_dataobject

Настройки

ПолеТипПо умолчаниюОписание
Путьpathstring$.field

Точечный путь к полю, напр. user.name или $.user.name (ведущий $. необязателен). Индексы массивов не поддерживаются.

Общие поля

Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.

  • expose_error_output — Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этого шага.
  • split_ports_in — Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.
  • split_ports_out — Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.