← Назад до блогу

Перетворення вкладеного JSON на прості записи в n8n

Практичний посібник із перетворення вкладеного масиву API на один упорядкований елемент n8n для кожного запису за допомогою Split Out і Edit Fields, а також із запасним варіантом на основі вузла Code для нерегулярних даних.

Руки впорядковують у простий ряд записи, вилучені з вкладених контейнерів JSON.

Перевірено за документацією n8n .

Мета й очікуваний результат

Мета — взяти один елемент n8n, що містить вкладений масив, і створити з нього простий список записів. Для редакційного прикладу уявімо, що вхідний елемент містить масив data.customers. Кожен клієнт має id, profile.name, profile.email і, можливо, інші непотрібні вам поля.

Після перетворення кожен елемент масиву має стати окремим елементом n8n. Навмисно спрощений результат може містити лише customerId, name та email. Якщо вихідний масив містить п’ять клієнтів, очікуваний результат — п’ять вихідних елементів. Ця зразкова структура слугує лише ілюстрацією, а не є даними, наданими API, чи офіційно задокументованим рецептом.

Основний шлях використовує Split Out для розділення масиву та Edit Fields для формування кожного отриманого елемента. Split Out призначений для перетворення списку, що міститься в одному елементі, на кілька елементів, а Edit Fields може створювати або перезаписувати поля за допомогою вхідних даних. Вузол Code тут краще залишити як запасний варіант на випадок, коли структура надто мінлива для простого зіставлення полів.

Sources: S1, S2, S5

Підготуйте робочий процес і зразок даних

Вам потрібні доступ до власного середовища n8n і відома відповідь у форматі JSON. Навчальний сайт не надає розміщеного середовища виконання n8n, тому підготуйте середовище, у якому можна створювати й запускати робочі процеси. Якщо ви плануєте отримувати актуальні дані, також потрібно знати кінцеву точку API та вимоги до автентифікації.

Вузол HTTP Request може отримувати інформацію з REST API. Налаштуйте його для сервісу, яким користуєтеся, а потім запустіть, щоб отримати репрезентативну відповідь. Оскільки кінцеві точки, облікові дані та структури відповідей залежать від сервісу, дотримуйтеся документації відповідного API, а не копіюйте припущення з цього посібника.

Для безпечнішої практики варто скористатися невеликим закріпленим або раніше отриманим зразком. Як запропонований редакційний приклад використайте об’єкт, поле data якого містить масив customers. Додайте два або три записи з такими полями, як id, profile.name, profile.email і status. Так буде легше порівнювати результат робочого процесу на кожному етапі, не залежачи від мінливої актуальної відповіді.

Sources: S4

Перевірте відповідь у поданні JSON

Відкрийте вузол, який надає відповідь, і перегляньте його результат. n8n пропонує подання Schema, Table і JSON для вхідних та вихідних даних вузла. Подання JSON особливо корисне для перевірки вкладеності й копіювання точного шляху до масиву, який потрібно розділити.

Знайдіть сам масив, а не окрему властивість усередині його записів. У запропонованому зразку цільовим шляхом є data.customers, а не data.customers.profile чи data.customers.profile.name. Перевірте написання, регістр символів і кожен об’єкт-обгортку в шляху.

Не покладайтеся лише на подання Schema, якщо записи можуть відрізнятися. У наданій документації зазначено, що Schema представляє перший елемент, тому вона може не показувати відмінності в інших елементах. Перш ніж вирішити, що всі записи мають однакові поля, перегляньте JSON і, за потреби, подання Table.

Sources: S3

Розділіть вкладений масив на окремі елементи

Один вкладений масив customers проходить через Split Out і перетворюється на три окремі елементи.
Редакційна схема перетворення одного масиву на багато елементів.

Додайте вузол Split Out після вихідного вузла. Укажіть у полі для розділення точний шлях до вкладеного масиву, наприклад data.customers у редакційному зразку. Якщо інтерфейс пропонує параметр, пов’язаний із крапковою нотацією, переконайтеся, що його поведінка відповідає способу введення вкладеного шляху.

Запустіть вузол Split Out і перевірте його результат. Очікується, що кожен елемент вихідного масиву стане окремим елементом n8n. Якщо масив містив три об’єкти клієнтів, вузол має створити три елементи. Таке порівняння кількості є практичним кроком перевірки, запропонованим у цьому посібнику, а не свідченням автоматизованого оцінювання.

Свідомо вирішіть, чи потрібно зберігати поля з елемента-обгортки. Дані обгортки можуть бути корисними, якщо містять контекст, потрібний кожному запису, але вони також можуть захаращувати результат. Якщо результат містить неочікувані поля верхнього рівня, перегляньте конфігурацію Split Out і налаштування збереження інших полів.

Sources: S1, S3

Зіставте кожен елемент із простим записом

Додайте Edit Fields після Split Out і скористайтеся режимом Manual Mapping. Створіть ключі, потрібні цільовій частині вашого робочого процесу. Для зразка можна створити customerId з id, name з profile.name та email з profile.email. Ці назви й шляхи є пропозиціями для ілюстративних даних, а не універсальними полями API.

Зіставте кожне нове поле з поточним розділеним елементом. Edit Fields підтримує встановлення нових даних і перезаписування наявних даних вхідними значеннями, тому цей вузол підходить для перейменування властивостей і вибору компактнішої структури результату.

Якщо вам потрібен упорядкований запис, що містить лише зіставлені ключі, увімкніть параметр збереження тільки встановлених полів. Запустіть вузол і перевірте кілька елементів, а не лише перший. Переконайтеся, що кожен вихідний елемент містить очікувані ключі, а значення походять із відповідного вихідного запису.

Sources: S2, S3

Перевірте перетворені записи

Порівняйте кількість елементів після Edit Fields із довжиною початкового масиву. Для цього прямого перетворення одного елемента масиву на один елемент n8n вони мають збігатися. Потім перегляньте результат у поданні JSON або Table, щоб підтвердити правильність назв і значень вибраних полів.

Перевірте не лише перший запис. Зверніть увагу на відсутні адреси електронної пошти, додаткову вкладеність, значення null або поля, типи яких відрізняються між записами. Саме лише подання Schema може приховати ці відмінності, оскільки відображає перший елемент.

Успішний результат для запропонованого зразка — це послідовність окремих елементів, кожен із яких містить лише customerId, name та email, якщо ввімкнено параметр збереження тільки встановлених полів. Якщо ви навмисно зберегли інші поля, задокументуйте причину, щоб наступний крок робочого процесу мав чітко визначений формат вхідних даних.

Sources: S2, S3

Використайте вузол Code для нерегулярних структур

Порівняння візуального шляху з вузлами для однорідних записів і запасного варіанта з Code для нерегулярних записів.
Ілюстративна схема вибору: використовуйте візуальне зіставлення для стабільних структур, а власний код — коли відомі структурні варіанти потребують умовної нормалізації.

Використовуйте вузол Code, коли вхідну структуру неможливо чітко представити як один стабільний шлях до масиву з подальшими послідовними зіставленнями. Прикладами можуть бути масиви, що з’являються за альтернативними шляхами, або записи, які потребують умовної нормалізації. Це лише запропоновані сценарії, а не порівняльний доказ того, що код працює швидше чи надійніше.

Вузол Code підтримує власний JavaScript або Python, але спеціальна логіка має відповідати очікуваній структурі вхідних і вихідних даних n8n та враховувати зв’язування елементів. Створіть найменше перетворення, яке обробляє відомі варіанти, і ретельно перевірте його результат.

Запропонована стратегія реалізації полягає в тому, щоб прочитати кожен вхідний елемент, вибрати перший доступний масив із явного списку відомих шляхів, нормалізувати кожен запис до однакового набору ключів і повернути один елемент n8n для кожного нормалізованого запису. Сприймайте це як редакційний шаблон проєктування, а не як офіційно перевірений рецепт. Якщо дані можна обробити стабільною конфігурацією Split Out і Edit Fields, її легше перевіряти візуально, і вона не потребує зайвої спеціальної логіки.

Sources: S5, S3

Усуньте поширені проблеми з результатами

Якщо Split Out не створює корисних елементів, поверніться до подання JSON і перевірте повний шлях до масиву. Шлях, спрямований на властивість запису замість масиву, помилка в ключі обгортки або невідповідна поведінка крапкової нотації можуть перешкодити очікуваному розділенню.

Якщо кожен вихідний елемент досі містить небажані поля обгортки, перевірте, чи зберіг Split Out навколишні дані та чи налаштовано Edit Fields на збереження лише встановлених вами полів. Якщо зіставлені значення порожні, перегляньте один розділений елемент і скоригуйте вирази відповідно до його структури після розділення, а не початкової структури обгортки.

Якщо одні записи обробляються, а інші — ні, перегляньте всі елементи в поданні JSON або Table. Перший елемент може не показувати непослідовну вкладеність або відсутні властивості. Вирішіть, чи можуть необов’язкові значення залишатися порожніми, чи потрібне резервне зіставлення, або ж чи виправдана умовна нормалізація у вузлі Code. Наостанок порівняйте довжину вихідного масиву з кількістю вихідних елементів і перевірте репрезентативні записи перед підключенням подальших дій.

Sources: S1, S2, S3, S5

Попрактикуйтеся в перетворенні

Повторіть вправу з другим зразком, у якому масив використовує інший шлях обгортки. Спочатку знайдіть масив у поданні JSON, потім розділіть його, зіставте мінімальний запис і перевірте як кількість вихідних елементів, так і структуру полів. Як необов’язкове розширення додайте один непослідовний запис і вирішіть, що доречніше: резервний вираз чи вузол Code.

Чітко розрізняйте ці інструменти: n8n — це середовище, у якому ви створюєте й запускаєте робочий процес, тоді як n8n Balloon Challenges — це сайт для практичного навчання та формат заходів. Він пропонує практичні завдання з автоматизації з послідовними підказками, а учасники працюють у власному середовищі n8n.

Sources: S1, S2, S3, S5

Спробуйте на практиці

Якість повітря у Валенсії

Відповідайте на будь-яке повідомлення в Telegram свіжими даними про якість повітря з будь-якої доступної станції.

Початковий

Спробувати практичне завдання

Для вашої команди

Програми навчання n8n для однієї команди чи відділу – на вашому власному екземплярі n8n, з вашими інструментами й даними.

Навчання для вашої команди