Перейти к содержимому

2. Файлы и JSON-данные

В этом уроке вы научитесь сохранять JSON-данные в файлы и извлекать их из файлов

Практика

Для работы вам понадобится код для генерации данных в двух Code-узлах и еще один вспомогательный

Узел Create items

const items = [
  {name: "Алиса", occupation: "хакер"},
  {name: "Боб", occupation: "предприниматель"}
]
return items;

Узел Array to single item

return [
  {
    data : $input.all().map((item) => item.json)
  }
]

Узел Create new items

const items = [
    {name: "Алиса", occupation_today: "хакер"},
    {name: "Боб", occupation_today: "таксист"}
  ]
return items;

Упражнения

  1. Создайте Code-узел Create items, скопируйте в него код и запустите. Появятся данные по Алисе и Бобу.
  2. Упакуйте эти данные в массив с одним элементом, иначе у нас создастся не один файл, а несколько. Создайте Function-узел Array to single item, вставив в него соответствующий код.
  3. Подключите узел Move To Binary, включив в нем режим JSON to Binary. Убедитесь, что Convert All Data включен. Назовите узел JSON to binary.
  4. Добавьте узел Write Binary File. В нем укажите, что хотите сохранить данные в файл task.json. Назовите его Save current data to file.

    Запустите узел и проверьте вашу папку с файлами. Там должен появиться файл с сохраненными данными по Алисе и Бобу.
  5. Прошли месяцы, Алиса узнала о состоянии Боба и обчистила его счета. Давайте узнаем, что изменилось, а что нет.

    Начните новую цепочку, ниже первой. Первым узлом будет Read Binary File. который читает сохраненный файл. Назовите его Load previous state.
  6. Переведите данные из бинарных в JSON, с помощью узла Move Binary Data. Назовите его Binary to JSON.
  7. На этом этапе нужно привести прочитанные данные опять в вид массива. Сделайте это через Split-режим Item Lists.
  8. Но так же на этом этапе мы хотим получить актуальную информацию об Алисе и Бобе. Создайте Function-узел Create new items и поместите в него код (смотри начало урока). Можете заметить, что род занятий у них теперь называется occupation_today. Этот узел будет так же начинаться из Binary to JSON.
  9. Теперь объединим эти два потока в узле Merge по индексу. Так у Алисы и Боба появятся поля со старыми и новыми занятиями.
  10. Теперь в узле IF устройте проверку. Значение в поле occupation_today не равняется значению в поле occupation. Выведите оба выхода на узлы No Operations. Назовите первый Changed items, второй – Not changed items.
  11. Запустите процесс и посмотрите, как он отделит Боба от Алисы.

Отметьте все решенные задачи на странице шаблона упражнений Сохранение и чтение JSON-данных.

Следующий урок → Отправка HTTP-запросов
Предыдущий урок → Чтение и запись в файл
К курсу → Автоматизация с n8n: теория и практика
Мои курсы выходят в открытый доступ!