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

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

> Каноническая страница: https://elysiatools.com/ru/tools/jsonata-query-transform-studio

- **Категория:** Data Processing

- **Ключевые слова:** jsonata, json, запрос, трансформация

## Обзор

Вставьте 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-ответах или фикстурах.

## Входные данные

- **Ввод JSON** (textarea): {"orders":\[{"id":1,"status":"paid","total":120}\]}
- **Выражение JSONata** (textarea): groupBy(orders, "status")
- **Сравниваемый JSON** (textarea): {"orders":\[{"id":2,"status":"pending","total":55}\]}
- **Формат вывода** (select)
- **Сохранить выражение** (checkbox)
- **Имя шаблона** (text): Paid order totals

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

- Когда нужно быстро отфильтровать или сгруппировать массивы данных из 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-файл для передачи аналитикам.

## Частые вопросы

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

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

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

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

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

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

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

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

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

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

## Связанные инструменты

- [Генератор Markdown-таблиц](https://elysiatools.com/ru/tools/markdown-table-generator): Создает форматированные Markdown-таблицы из CSV, JSON или массивов с настройкой выравнивания, стиля заголовков, ширины столбцов и подсказок по объединению
- [Удалитель BOM Символов](https://elysiatools.com/ru/tools/data-bom-remover): Удаление BOM (Byte Order Mark) символов из текстового и файлового содержимого. Идеально для очистки текстовых файлов с проблемами кодировки.
- [Преобразователь Markdown-таблиц в CSV, JSON и схему с типами](https://elysiatools.com/ru/tools/markdown-table-to-csv-json-schema): Преобразует Markdown-таблицу с вертикальными чертами в CSV, строки JSON или JSON Schema с диагностикой типов и null
- [Мастер преобразования неструктурированного текста в данные](https://elysiatools.com/ru/tools/messy-text-to-structured-data-workbench): Выводит таблицу из текста, смешанных разделителей, строк ключ-значение или HTML и экспортирует CSV, JSON и Markdown.
- [JSON в CSV Конвертер](https://elysiatools.com/ru/tools/json-to-csv): Конвертирует данные JSON в формат CSV с настраиваемыми опциями форматирования
- [Анализатор структурированных логов](https://elysiatools.com/ru/tools/structured-log-analyzer): Определяет распространенные форматы логов, извлекает ключевые поля и выводит JSON, CSV или SQL.
- [Text to Excel Converter](https://elysiatools.com/ru/tools/text-to-excel): Convert various text formats to Excel with customizable parsing and formatting options
- [Извлечение таблиц PDF в CSV/JSON](https://elysiatools.com/ru/tools/pdf-table-extractor-to-csv-json): Извлекает таблицы из PDF через OpenDataLoader и экспортирует в JSON, CSV или HTML

## Примеры

- [CSV Примеры](https://elysiatools.com/ru/samples/csv-samples): Примеры CSV-файлов с различными типами данных, размерами и уровнями сложности
- [Примеры Python](https://elysiatools.com/ru/samples/python): Примеры кода Python и демонстрации Hello World
- [Примеры OpenAPI/Swagger](https://elysiatools.com/ru/samples/openapi-swagger): Комплексные примеры документации API с использованием OpenAPI 3.0 и спецификаций Swagger для RESTful сервисов
- [Примеры Распределенного Трейсинга](https://elysiatools.com/ru/samples/distributed-tracing-samples): Комплексные примеры распределенного трейсинга с использованием Jaeger, OpenTelemetry и современных инструментов

## Связанные материалы

- [Инструменты для проверки, diff и преобразования JSON](https://elysiatools.com/ru/hubs/json-utility): Соберите в одном хабе инструменты для форматирования JSON, сравнения версий, проверки путей, валидации схем, объединения файлов и преобразования данных для API и data workflows.
- [Генераторы JSON-схем, mock-данных и API-fixture](https://elysiatools.com/ru/hubs/json-generate): Подборка инструментов для генерации JSON-схем, сборки mock-payload и подготовки API-fixture в одном хабе.
- [Инструменты для observability, анализа логов и отладки trace](https://elysiatools.com/ru/hubs/observability-debugging): Разбирайте логи, исследуйте trace, сравнивайте дрейф API payload и превращайте сырые данные наблюдаемости в таймлайны, диаграммы и структурированные доказательства для более быстрой отладки.
- [Инструменты JSON-обмена и перевода форматов](https://elysiatools.com/ru/hubs/json-convert): Сравните инструменты преобразования JSON для CSV, YAML, TOML, GraphQL, XML, Markdown, Excel, BSON, EDN и других структурированных форматов в одном хабе.
