В Нейро42 все данные, которые узлы передают друг другу, представляют собой массив объектов.
Каждый объект внутри массива — это отдельный элемент данных (item), содержащий либо структурированную информацию (JSON), либо бинарные вложения (файлы, изображения и т. д.).
Базовый формат одного элемента выглядит так:
[
{
«json»: {
«apple»: «beets»,
«carrot»: {
«dill»: 1
}
},
«binary»: {
«apple-picture»: {
«data»: «….»,
«mimeType»: «image/png»,
«fileExtension»: «png»,
«fileName»: «example.png»
}
}
}
]
JSON-данные (json)
Поле json — это контейнер для структурированных данных, например:
- строки,
- числа,
- логические значения,
- вложенные объекты,
- массивы.
Все, что не является файлом, хранится именно здесь.
Пример:
«json»: {
«customer»: «John Doe»,
«order»: {
«id»: 42,
«total»: 199.90
}
}
Бинарные данные (binary)
Если узел работает с файлами или изображениями, они помещаются в поле binary.
Каждый файл — отдельный ключ, содержащий:
- data — бинарные данные в Base64 (обязательно),
- mimeType — тип файла (желательно указать),
- fileExtension — расширение (желательно указать),
- fileName — имя файла (желательно указать).
Пример:
«binary»: {
«avatar»: {
«data»: «….»,
«mimeType»: «image/jpeg»,
«fileName»: «user.jpg»
}
}
Автоматическое добавление json и массива
Когда вы используете узлы Code или Code for Each Item, Нейро42 автоматически приводит данные к корректной структуре:
- добавляет ключ json, если он отсутствует;
- оборачивает результат в массив, если вы вернули одиночный объект.
Это сделано для удобства разработки. Однако, при создании собственных узлов необходимо вручную возвращать данные строго в нужном формате — с ключом json и массивом элементов.
Обработка нескольких элементов
Большинство узлов в Нейро42 умеют работать сразу с несколькими элементами входного массива.
Это значит, что если на вход приходит, например, 10 элементов — узел выполнится 10 раз, по одному для каждого элемента.
Пример
Предположим, что вы используете узел Trello для создания карточек, а поле Name заполняете выражением, которое берет значение name-input-value из входящих данных.
Если входные данные такие:
[
{ «name-input-value»: «test1» },
{ «name-input-value»: «test2» }
]
То узел создаст две карточки:
- Карточку с названием test1
- Карточку с названием test2
Нейро42 всегда берет данные текущего элемента — это обеспечивает корректную обработку массивов и позволяет автоматизировать множество однотипных операций без ручного построения циклов.