Задача и предварительные условия
Возьмите массив data.items из JSON и создайте плоский CSV с согласованным порядком столбцов.
В примере используются демонстрационные данные и настройки. Проверьте ожидаемый результат в своей среде до подключения рабочих получателей. Идентификаторы demo_* условны: выберите собственные учебные подключения или источники в редакторе. JSON ниже показывает структуру блоков и связей, а не готовый архив потока для переноса.
Учебные входные данные
{
"data": {
"items": [
{
"sku": "T01",
"name": "Tea",
"stock": 12
},
{
"sku": "C01",
"name": "Coffee",
"stock": 5
}
]
},
"generated": "demo"
}Блоки, связи и точные настройки
Схема примера 03: блоков — 3, связей — 2. Идентификаторы узлов и порты настроенной схемы сохранены.
Добавьте перечисленные блоки в конструкторе, откройте свойства каждого и задайте эти значения. Имена demo_* обозначают учебные источники и подключения.
| Блок | Настройка |
|---|---|
| 1 Файл src |
|
| 2 Сопоставление столбцов map |
|
| 3 Экспорт данных out |
|
Связи портов
- src
out→ mapin - map
out→ outin
Полная конфигурация схемы в JSON
{
"version": 3,
"nodes": [
{
"id": "src",
"type": "file",
"label": "src",
"config": {
"role": "source",
"source_id": "demo_inventory_json",
"options": {
"json_path": "/data/items",
"range": "A1:C3",
"header": true
}
}
},
{
"id": "map",
"type": "mapping",
"label": "map",
"config": {
"mode": "columns",
"columns": [
{
"name": "SKU",
"value": "sku"
},
{
"name": "Name",
"value": "name"
},
{
"name": "Stock",
"value": "stock"
}
]
}
},
{
"id": "out",
"type": "export",
"label": "out",
"config": {
"format": "csv",
"filename": "inventory",
"destination": "download",
"delimiter": ";",
"timezone": "Europe/Kyiv"
}
}
],
"edges": [
{
"source": "src",
"target": "map",
"source_port": "out",
"target_port": "in"
},
{
"source": "map",
"target": "out",
"source_port": "out",
"target_port": "in"
}
]
}Ожидаемый результат
| SKU | Имя | Stock |
|---|---|---|
| T01 | Tea | 12 |
| C01 | Coffee | 5 |
Запуск и проверка
- Сохраните показанный JSON как inventory.json и добавьте как файловый источник.
- Задайте json_path=/data/items и используйте точные исходные имена sku, name и stock в сопоставлении.
- Запустите и проверьте inventory.csv: две строки без сформированного поля метаданных.
Частые ошибки
- Файловый источник использует JSON Pointer /data/items. Это отличается от пути data.items в подключении REST API.
- Путь должен вести к записям: ошибка в items даёт отсутствие пути или неверную структуру.
- Для сопоставления нужны точные имена полей; SKU — выходное имя, sku — входное.