Инструменты JSON

Тестер JMESPathвыберите данные и задайте форму результата

Запустите фильтр по возрасту кнопкой или Ctrl/Cmd+Enter. После изменения данных или выражения выполните запрос повторно.

Тестер JMESPath

Входной JSON

Результат

Предпросмотр блоками по 5 000 символов. Копирование и скачивание включают весь результат.

JSON и выражения остаются в памяти браузера и не сохраняются.

Официальный jmespath.js 0.16.0 · Исправления безопасности · 26 стандартных функций

Результат устарел; копирование и скачивание отключены.

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

Выражение JMESPath возвращает одно значение: объект, массив или скаляр. Загрузите JSON-данные и сравните проекцию поля с построением нового объекта. Исходный документ при этом не изменяется.

Зачем нужен Тестер JMESPath

От условия к нужным полям

Сначала фильтр оставляет подходящих людей, затем проекция извлекает имена. Результаты null в проекции пропускаются, поэтому длина выходного списка может отличаться от числа обработанных элементов.

Записи проходят через условие, а выбранные поля образуют сокращённый список.

Подготовьте нужную структуру

Объедините имена и количество в одном объекте или отсортируйте записи по свойству. Тестер JMESPath показывает, какие ключи и типы получит следующая команда, прежде чем вы перенесёте выражение в терминал.

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

Проверьте типы и актуальность вывода

01

Подготовьте строгий JSON

Вставьте текст или импортируйте локальный файл размером до 500 000 байт. Декодированный ввод ограничен 500 000 символами. Импорт, пример и очистка требуют применения предпросмотра замены; одна отмена восстанавливает также выражение и результат. Файл должен содержать корректный UTF-8. BOM не удаляется автоматически и вызывает ошибку проверки JSON.

02

Запускайте после изменений

Выполнение только ручное; доступно Ctrl/Cmd+Enter. Выбор примера запроса меняет лишь выражение. Любая правка делает старый результат неактуальным и блокирует экспорт до нового успешного запуска.

03

Отличайте значение от предпросмотра

null, false, 0, пустая строка и [] могут быть успешным результатом. Предпросмотр добавляет по 5 000 символов; копирование и скачивание включают весь принятый результат, а не только видимую часть.

Отбор, построение и вычисления

Числовые условия для массива

people[?age >= `18`].name сравнивает возраст и извлекает имена. Числовой литерал заключается в обратные кавычки. Строка с цифрами остаётся строкой, а не становится числом.

Именованные поля результата

{names: people[].name, count: length(people)} создаёт объект со списком и числом. Списки множественного выбора могут сохранить позиции с null, которые проекция пропустила бы.

Каналы и ссылки на выражения

Оператор | передаёт весь результат слева выражению справа. Для sort_by используется, например, &age — ссылка на выражение, а не строка с именем свойства. У функций определены допустимые типы аргументов.

Ошибки с конкретной причиной

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

Поддерживаемый синтаксис и ограничения

Фиксированный движок
Используется официальный jmespath.js 0.16.0 с исправлениями безопасности и 26 стандартными функциями. JSONPath, jq, group_by, расширения regex, пользовательские функции и произвольный JavaScript не поддерживаются. В обратных кавычках допустим только строгий JSON; строки записывайте в одинарных кавычках. Ссылки на выражения служат только аргументами функций, а не выходными значениями.
Без точной десятичной арифметики
Повторяющиеся ключи, комментарии и завершающие запятые отклоняются. Небезопасные целые и переполнение во вводе, литералах или результате вызывают ошибку. Дроби используют числа JavaScript; исходная запись числа не сохраняется. Небезопасная промежуточная сумма в sum или avg отклоняется, даже если итоговое математическое значение было бы безопасным.
Ограниченная работа запроса
Допускается 500 000 символов ввода, 2 000 в выражении и 2 000 000 в выводе; действуют также ограничения структуры и вычислений. Worker останавливается через 2 секунды. Превышение лимита не даёт частичного файла для скачивания.
Значения без исходных путей
Вывод — это значение JSON, а не список нормализованных путей. Рекурсивный поиск JSONPath, редактирование источника и экспорт CSV отсутствуют. Пропущенное поле и явный null могут дать одинаковый результат.
Только память браузера
Страница не сохраняет историю, не загружает URL и не создаёт ссылки с данными. Локальные файлы обрабатываются в браузере. Перезагрузка страницы удаляет текущую работу.

Тестер JMESPath: вопросы и ответы

Как получить несколько значений?

Используйте множественный выбор, например {names: people[].name, count: length(people)}. Новый объект объединит список и число, не изменяя входной документ.

Как переименовать свойства в запросе?

В people[].{label: name} ключ label задаёт новое имя, а name указывает читаемое поле. Если его нет, значение в построенном объекте может оказаться null.

Как отфильтровать массив логическим выражением?

people[?active == `true`].name оставляет записи с логическим true в поле active. Это не строка 'true'. Условия можно объединять логическими операторами языка.

Какие функции доступны?

Тестер JMESPath предоставляет 26 стандартных функций jmespath.js 0.16.0, включая length, sort_by, contains и sum. group_by в этот набор не входит. Аргументы неподходящего типа приводят к ошибке.

Как работают выражения пайплайна?

people[].name | [0] сначала получает весь список имён, затем выбирает первый элемент. Канал передаёт значение JSON и не запускает команды операционной системы.

Запрос обрабатывается неправильно?

Начните с короткого запроса

Откройте Тестер JMESPath, измените одно условие примера и проверьте тип ответа перед обработкой большого документа.