Студия запросов и преобразований JSONata

Просматривайте запросы и преобразования в стиле JSONata, сравнивайте результаты и экспортируйте JSON, CSV, YAML или Markdown.

Вставьте JSON-объект или массив в поле "Ввод JSON", а затем укажите выражение в "Выражение JSONata".

Как заполнять поля:

  • Ввод JSON: основной JSON-пейлоад для запроса или преобразования
  • Выражение JSONata: стандартное выражение JSONata или helper-форма вроде groupBy(orders, "status")
  • Сравниваемый JSON: необязательный второй пейлоад, который вычисляется тем же выражением для бокового сравнения
  • Формат вывода: отображает результат как JSON, CSV, YAML или Markdown
  • Сохранить выражение: сохраняет текущее выражение в локальную историю
  • Имя шаблона: необязательное имя, отображаемое в истории выражений

Поддерживаемые стили выражений:

  • Стандартный JSONata, например $sum(orders.total) или orders[status="paid"]
  • Helper-функции студии без префикса $:
  • groupBy(collection, "field.path")
  • mapField(collection, "field.path")
  • flatten(collection)
  • distinct(collection)
  • count(collection)
  • sum(collection)
  • avg(collection)
  • keys(object)

Примеры:

  • Ввод JSON: {"orders":[{"id":1,"status":"paid","total":120},{"id":2,"status":"pending","total":40}]}
  • Выражение: groupBy(orders, "status")
  • Выражение: sum(orders.total)
  • Выражение: orders[status="paid"]

Примечания:

  • Инструмент использует реальный runtime jsonata и предварительно преобразует helper-имена в вызываемые функции.
  • Сравниваемый JSON необязателен, но полезен для проверки одной и той же трансформации на двух API-ответах или фикстурах.

Примеры результатов

1 Примеры

Сгруппировать заказы по статусу и экспортировать результат

Одним выражением сравните распределение статусов в двух снимках данных.

groupBy result preview
Показать параметры ввода
{ "jsonInput": "{\"orders\":[{\"id\":1,\"status\":\"paid\",\"total\":120},{\"id\":2,\"status\":\"pending\",\"total\":40}]}", "expression": "groupBy(orders, \"status\")", "outputFormat": "json" }

Ключевые факты

Категория
Данные и таблицы
Типы входных данных
textarea, select, checkbox, text
Тип результата
html
Покрытие примерами
4
API доступен
Yes

Обзор

Студия запросов и преобразований JSONata позволяет легко тестировать выражения JSONata, фильтровать данные и преобразовывать сложные JSON-структуры. Вы можете применять стандартные функции или встроенные хелперы для группировки и агрегации, сравнивать результаты обработки двух разных JSON-файлов в реальном времени и экспортировать готовые данные в форматы JSON, CSV, YAML или Markdown.

Когда использовать

  • Когда нужно быстро отфильтровать или сгруппировать массивы данных из API-ответов.
  • Для сравнения результатов одного и того же преобразования на двух разных JSON-пейлоадах.
  • При необходимости конвертировать вложенную структуру JSON в плоскую таблицу CSV или читаемый Markdown.

Как это работает

  • Вставьте исходный JSON-код в поле «Ввод JSON».
  • Напишите стандартное выражение JSONata (например, orders[status="paid"]) или используйте встроенные функции (например, groupBy(orders, "status")).
  • При необходимости добавьте второй JSON в поле «Сравниваемый JSON» для параллельного тестирования одного и того же запроса.
  • Выберите нужный формат вывода (JSON, CSV, YAML или Markdown) и получите готовый результат.

Сценарии использования

Извлечение списка email-адресов активных пользователей из сложного ответа REST API.
Агрегация данных о продажах с группировкой заказов по статусу и подсчетом общей суммы.
Преобразование вложенного JSON-массива в плоский CSV-файл для передачи аналитикам.

Примеры

1. Группировка заказов по статусу

Backend-разработчик
Контекст
Разработчик получает массив заказов из базы данных и хочет проверить распределение статусов.
Проблема
Нужно быстро сгруппировать заказы (оплаченные, ожидающие) без написания отдельного скрипта.
Как использовать
Вставьте массив заказов в «Ввод JSON» и используйте встроенную функцию groupBy.
Пример конфигурации
groupBy(orders, "status")
Результат
JSON преобразуется в объект, где ключами являются статусы заказов, а значениями — массивы соответствующих заказов.

2. Подсчет суммы успешных транзакций

Аналитик данных
Контекст
Есть выгрузка транзакций в формате JSON, нужно посчитать общую выручку.
Проблема
Извлечь только успешные транзакции и просуммировать их значения.
Как использовать
Вставьте JSON с транзакциями и напишите стандартное выражение JSONata для фильтрации и суммы.
Пример конфигурации
$sum(transactions[status="success"].amount)
Результат
Инструмент мгновенно выведет одно число — общую сумму всех успешных транзакций.

3. Конвертация JSON в CSV для отчета

Менеджер продукта
Контекст
Менеджер получил от разработчиков JSON-файл со списком пользователей.
Проблема
Данные нужно передать в отдел маркетинга в формате таблицы (CSV).
Как использовать
Вставьте JSON, укажите выражение для извлечения нужного массива и выберите формат вывода «CSV».
Пример конфигурации
users
Результат
Массив объектов преобразуется в табличный формат CSV, готовый для импорта в Excel или Google Таблицы.

Проверить на примерах

json, csv, yaml

Связанные хабы

FAQ

Поддерживает ли инструмент стандартный синтаксис JSONata?

Да, инструмент использует реальную среду выполнения JSONata, поэтому все стандартные операторы и функции (например, $sum()) работают корректно.

Что такое встроенные функции (хелперы)?

Это упрощенные команды без префикса $, такие как groupBy(), flatten() или distinct(), которые мы добавили для ускорения типовых задач по обработке массивов.

Зачем нужно поле «Сравниваемый JSON»?

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

В какие форматы можно экспортировать результат?

Вы можете переключить формат вывода на JSON, CSV, YAML или Markdown с помощью соответствующего выпадающего списка.

Можно ли сохранить часто используемые запросы?

Да, отметьте галочку «Сохранить выражение» и укажите имя шаблона, чтобы сохранить запрос в локальную историю для будущего использования.

Документация API

Конечная точка запроса

POST /ru/api/tools/jsonata-query-transform-studio

Параметры запроса

Имя параметра Тип Обязательно Описание
jsonInput textarea Да -
expression textarea Да -
compareJsonInput textarea Нет -
outputFormat select Нет -
saveExpression checkbox Нет -
templateName text Нет -

Формат ответа

{
  "result": "
Processed HTML content
", "error": "Error message (optional)", "message": "Notification message (optional)", "metadata": { "key": "value" } }
HTML: HTML

Документация MCP

Добавьте этот инструмент к конфигурации сервера MCP:

{
  "mcpServers": {
    "elysiatools-jsonata-query-transform-studio": {
      "name": "jsonata-query-transform-studio",
      "description": "Просматривайте запросы и преобразования в стиле JSONata, сравнивайте результаты и экспортируйте JSON, CSV, YAML или Markdown.",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=jsonata-query-transform-studio",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Вы можете объединять несколько инструментов, например: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, максимум 20 инструментов.

Если вы столкнулись с проблемами, пожалуйста, свяжитесь с нами по адресу [email protected]