logologo
Начало
Руководство
Разработка
Плагины
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Начало
Руководство
Разработка
Плагины
API
logologo
Рабочие процессы
Обзор
Быстрый старт

Триггер

Обзор
Событие таблицы данных
Задача по расписанию
Событие перед действием
Событие после действия
Пользовательское событие действия
Согласование
Webhook

Узел

Обзор

Искусственный интеллект (AI)

Большая языковая модель (LLM)

Управление потоком

Условие
Ветвление по условиям
Цикл
Переменная
Параллельное ветвление
Вызов рабочего процесса
Вывод потока
Сопоставление переменных JSON
Задержка
Завершение

Вычисление

Вычисление
Вычисление даты
Вычисление JSON

Операции с данными

Добавление данных
Обновление данных
Запрос данных
Удаление данных
Операция SQL

Ручная обработка

Ручная обработка
Согласование
Копия (CC)

Расширенные типы

HTTP-запрос
Скрипт JavaScript
Уведомление
Отправка email
Ответ
Сообщение ответа
Переменная
Журнал выполнения
Управление версиями
Расширенные параметры

Разработка расширений

Обзор
Расширенные типы триггеров
Расширенные типы узлов
Справочник API
Previous PageВычисление даты
Next PageДобавление данных
Уведомление о переводе ИИ

Эта документация была автоматически переведена ИИ.

#Вычисление JSON

This feature is provided by the plugin «Рабочий процесс: Вычисление JSON»

#Введение

На основе различных движков для обработки JSON этот узел позволяет вычислять или преобразовывать сложные JSON-данные, полученные от вышестоящих узлов, для их дальнейшего использования. Например, результаты узлов SQL-операций и HTTP-запросов можно преобразовать в необходимые значения и форматы переменных с помощью этого узла.

#Создание узла

В интерфейсе настройки рабочего процесса нажмите кнопку «плюс» («+») в схеме процесса, чтобы добавить узел «Вычисление JSON»:"

Создание узла

Подсказка

Обычно узел «Вычисление JSON» создается под другими узлами данных для их обработки.

#Настройка узла

#Движок для обработки

Узел «Вычисление JSON» поддерживает различные синтаксисы благодаря разным движкам для обработки. Вы можете выбрать движок, исходя из своих предпочтений и особенностей каждого. В настоящее время поддерживаются три движка для обработки:

  • JMESPath
  • JSONPath Plus
  • JSONata

Выбор движка

#Источник данных

Источник данных может быть результатом вышестоящего узла или объектом данных в контексте рабочего процесса. Обычно это объект данных без встроенной структуры, например, результат SQL-узла или узла HTTP-запроса.

Источник данных

Подсказка

Обычно объекты данных узлов, связанных с коллекциями, уже структурированы с помощью информации о конфигурации коллекции и, как правило, не требуют обработки узлом «Вычисление JSON».

#Выражение для обработки

Пользовательские выражения для обработки, основанные на требованиях к парсингу и выбранном движке для обработки.

Выражение для обработки

Подсказка

Различные движки предоставляют разный синтаксис для обработки. Подробности можно найти в документации по ссылкам.

Начиная с версии v1.0.0-alpha.15, выражения поддерживают переменные. Переменные предварительно обрабатываются перед выполнением конкретным движком, заменяя их на определенные строковые значения в соответствии с правилами строковых шаблонов, и объединяются с другими статическими строками в выражении для формирования окончательного выражения. Эта функция очень полезна, когда вам нужно динамически строить выражения, например, когда некоторому JSON-содержимому требуется динамический ключ для обработки.

#Сопоставление свойств

Когда результат вычисления представляет собой объект (или массив объектов), вы можете дополнительно сопоставить необходимые свойства с дочерними переменными с помощью сопоставления свойств для использования последующими узлами.

Сопоставление свойств

Подсказка

Для результата, представляющего собой объект (или массив объектов), если сопоставление свойств не выполняется, весь объект (или массив объектов) будет сохранен как одна переменная в результате узла, и значения свойств объекта не смогут быть использованы напрямую как переменные.

#Пример

Предположим, данные для обработки поступают от предыдущего SQL-узла, используемого для запроса данных, и его результатом является набор данных о заказах:

[
  {
    "id": 1,
    "products": [
      {
        "id": 1,
        "title": "Product 1",
        "price": 100,
        "quantity": 1
      },
      {
        "id": 2,
        "title": "Product 2",
        "price": 120,
        "quantity": 2
      }
    ]
  },
  {
    "id": 2,
    "products": [
      {
        "id": 3,
        "title": "Product 3",
        "price": 130,
        "quantity": 1
      },
      {
        "id": 4,
        "title": "Product 4",
        "price": 140,
        "quantity": 2
      }
    ]
  }
]

Если нам нужно обработать и вычислить общую стоимость двух заказов в данных, а затем собрать ее с соответствующим ID заказа в объект для обновления общей стоимости заказа, мы можем настроить это следующим образом:

Пример — Настройка обработки SQL

  1. Выберите движок для обработки JSONata;
  2. Выберите результат SQL-узла в качестве источника данных;
  3. Используйте выражение JSONata $[0].{"id": id, "total": products.(price * quantity)} для обработки;
  4. Выберите сопоставление свойств, чтобы сопоставить id и total с дочерними переменными;

Окончательный результат обработки выглядит так:

[
  {
    "id": 1,
    "total": 340
  },
  {
    "id": 2,
    "total": 410
  }
]

Затем пройдитесь по полученному массиву заказов, чтобы обновить общую стоимость каждого заказа.

Обновление общей стоимости соответствующего заказа