В этом уроке вы научитесь сохранять 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;Упражнения
- Создайте Code-узел Create items, скопируйте в него код и запустите. Появятся данные по Алисе и Бобу.
- Упакуйте эти данные в массив с одним элементом, иначе у нас создастся не один файл, а несколько. Создайте Function-узел Array to single item, вставив в него соответствующий код.
- Подключите узел Move To Binary, включив в нем режим JSON to Binary. Убедитесь, что Convert All Data включен. Назовите узел JSON to binary.
- Добавьте узел Write Binary File. В нем укажите, что хотите сохранить данные в файл task.json. Назовите его Save current data to file.
Запустите узел и проверьте вашу папку с файлами. Там должен появиться файл с сохраненными данными по Алисе и Бобу. - Прошли месяцы, Алиса узнала о состоянии Боба и обчистила его счета. Давайте узнаем, что изменилось, а что нет.
Начните новую цепочку, ниже первой. Первым узлом будет Read Binary File. который читает сохраненный файл. Назовите его Load previous state. - Переведите данные из бинарных в JSON, с помощью узла Move Binary Data. Назовите его Binary to JSON.
- На этом этапе нужно привести прочитанные данные опять в вид массива. Сделайте это через Split-режим Item Lists.
- Но так же на этом этапе мы хотим получить актуальную информацию об Алисе и Бобе. Создайте Function-узел Create new items и поместите в него код (смотри начало урока). Можете заметить, что род занятий у них теперь называется occupation_today. Этот узел будет так же начинаться из Binary to JSON.
- Теперь объединим эти два потока в узле Merge по индексу. Так у Алисы и Боба появятся поля со старыми и новыми занятиями.
- Теперь в узле IF устройте проверку. Значение в поле occupation_today не равняется значению в поле occupation. Выведите оба выхода на узлы No Operations. Назовите первый Changed items, второй – Not changed items.
- Запустите процесс и посмотрите, как он отделит Боба от Алисы.
Отметьте все решенные задачи на странице шаблона упражнений Сохранение и чтение JSON-данных.