JSON

JSONPath тестер

Проверка JSONPath-выражений на реальных JSON-данных — мгновенный просмотр найденных значений и путей к ним.

$ — корень · .key / ['key'] — свойство · .. — рекурсивный поиск · [*] — все элементы · [0,1] — индексы · [0:2] — срез · [?(@.price<10)] — фильтр

—

JSONPath позволяет обращаться к вложенным значениям в JSON так же, как XPath работает для XML, — компактной строкой-путём вроде $.users[0].email вместо ручного обхода структуры. Инструмент позволяет проверить выражение на реальных данных и сразу увидеть результат.

Как пользоваться

Типичные сценарии

Что стоит помнить

Единого официального стандарта JSONPath не существует — базовый синтаксис (точки, скобки, *) поддерживается везде одинаково, но фильтры и более сложные выражения отличаются между библиотеками.

Индексация массивов в JSONPath начинается с нуля, как и в большинстве языков программирования — [0] означает первый элемент.

Статья об этом инструменте: JSONPath: как искать данные в JSON без ручного парсинга

Часто задаваемые вопросы

Что на самом деле делает выражение JSONPath вроде $.store.book[*].author?

Оно перемещается по структуре JSON, начиная с корня ($), через ключи store и book, а подстановочный знак [*] выбирает каждый элемент массива book перед чтением поля author у каждого из них.

В чём разница между $.a.b и $..b?

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

Отправляет ли этот инструмент мой JSON куда-либо для вычисления пути?

Нет. Выражение JSONPath вычисляется полностью в вашем браузере — ваши данные никогда не покидают ваше устройство.

Как обратиться к ключу, который содержит точку или пробел?

Через квадратные скобки с кавычками: $['user.name'] вместо $.user.name — иначе парсер прочитает точку как разделитель вложенности, а не часть названия ключа.

Существует ли единый официальный стандарт JSONPath?

Нет. Базовый синтаксис (точки, скобки, звёздочка) поддерживается практически везде одинаково, но фильтры и расширенные выражения отличаются между библиотеками — проверяйте совместимость для сложных выражений.

Статьи: JSON

JSON Formatter: форматирование, минимизация и валидация

Форматирование для читаемости, минимизация для размера, валидация для корректности — три разные задачи с JSON.

JSON Diff: чем структурное сравнение отличается от текстового

Почему порядок ключей не должен влиять на сравнение двух JSON-документов.

JSON Schema: как описать и проверить структуру JSON

Как JSON Schema позволяет автоматически проверить, соответствуют ли данные ожидаемому контракту.

JSON Flatten: превращение вложенной структуры в плоский список

Как глубоко вложенный JSON превращается в плоский список ключей вида user.address.city.

JSON Sort Keys: зачем сортировать ключи объекта

Почему порядок ключей в JSON не регламентирован, но сортировка всё равно бывает полезна.

JSON Repair: почему JSON ломается и как это исправить

Типичные причины «сломанного» JSON и что автоматический ремонт может, а что не может исправить.

Mock JSON Generator: зачем нужны фейковые данные

Как мок-данные позволяют начать разработку интерфейса ещё до того, как готов бекенд.

JSON ↔ YAML/CSV/XML/TOML: когда и зачем конвертировать

Какие данные теряются при конвертации JSON в CSV и почему YAML и TOML популярны для конфигов.