Уведомление о переводе ИИ

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

Вычисление JSON

Workflow: JSON-вычисленияCommunity Edition+

Введение

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

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

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

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

Подсказка

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

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

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

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

Выбор движка

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

Источник данных может быть результатом вышестоящего узла или объектом данных в контексте рабочего процесса. Обычно это объект данных без встроенной структуры, например, результат 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
  }
]

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

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