ДокументыИзображенияМедиаИнструменты PDF

JSON Path Finder Онлайн

Кликните на любое значение JSON и мгновенно получите его путь. Бесплатно, в браузере.

Click any path to copy

Processed in your browser

Находите JSON-пути одним кликом

Совместим с JSONPath и jq

Сгенерированные пути валидны в стандартном JSONPath, jq, jsonata и большинстве библиотек работы с JSON.

100% приватно

Ваш JSON обрабатывается в браузере. Никогда не отправляется на серверы. Безопасно для JSON с внутренними API-данными.

Интерактивное визуальное дерево

JSON отображается в виде дерева с цветовой кодировкой по типам (string, number, boolean, array, object) для удобной навигации.

Мгновенно

Путь появляется в момент клика. Никаких форм, кнопок и ожидания.

Три шага — никаких сложностей

1

Вставьте ваш JSON

Введите JSON, который нужно исследовать. Инструмент валидирует его и отображает дерево интерактивно с цветовой кодировкой по типам.

2

Нажмите на любое значение

Кликните на любой ключ или значение в JSON. Инструмент мгновенно вычисляет и отображает полный путь в точечной нотации и синтаксисе JSONPath.

3

Скопируйте путь

Скопируйте сгенерированный путь (например, `data.users[0].address.city`) для использования в коде, jq-запросах или API-инструментах.

Остались вопросы?

JSON-путь — это последовательность ключей и/или индексов массива, необходимая для доступа к конкретному значению во вложенной JSON-структуре. Например, в `{"user": {"name": "Alice"}}` путь к имени будет `user.name` в точечной нотации или `$.user.name` в синтаксисе JSONPath. Пути необходимы для программного извлечения значений, настройки бизнес-правил на основе JSON-данных и написания запросов трансформации данных.

JSONPath — язык запросов для JSON, аналогичный XPath для XML, предложенный Стефаном Гёсснером в 2007 году. Знак `$` представляет корень документа. Точка `.` обращается к свойству объекта: `$.store.book`. Скобки `[]` обращаются к индексам массива: `$.users[0]`. Рекурсивные запросы используют `..`: `$..name` возвращает все поля `name` на любом уровне. Фильтры выражаются как `[?(@.price < 10)]`.

JSON-пути имеют множество практических применений: (1) Отладка API — точное определение местоположения значения в большом ответе; (2) jq-запросы — `jq '.data.users[0].name'` для извлечения значений в терминале; (3) Извлечение конфигурации — скрипты, читающие значения из сложных JSON-конфигов; (4) Трансформации данных с такими инструментами, как JSONata или jolt; (5) Правила валидации в JSON Schema, ссылающиеся на конкретные поля.

Массивы в JSON индексируются с нуля. Первый элемент — `[0]`, второй — `[1]` и так далее. В JSONPath `$.items[0]` обращается к первому элементу, `$.items[-1]` — к последнему (в реализациях, поддерживающих отрицательные индексы), а `$.items[0,2]` — к элементам с индексами 0 и 2. Для доступа ко всем элементам массива используется подстановочный знак: `$.items[*]`.

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

JSONPath: спецификация Стефана Гёсснера 2007 года, RFC 9535, jq и отладка REST API

JSONPath был предложен Стефаном Гёсснером в 2007 году как язык запросов для JSON, аналогичный XPath для XML. В отличие от XPath, JSONPath не был формально стандартизирован вплоть до RFC 9535 (2024). Многочисленные реализации на разных языках (Jayway на Java, jsonpath на Python, jsonpath-ng, jp на Go) переняли слегка отличающиеся вариации исходной спецификации. RFC 9535 наконец унифицировал синтаксис, обеспечив согласованное поведение в разных реализациях.

jq — наиболее популярный инструмент командной строки для обработки JSON, созданный Стивеном Доланом в 2012 году. Он работает как потоковый процессор: получает JSON через stdin, применяет фильтр (путевое выражение и преобразование) и выводит JSON через stdout. Команды вида `curl https://api.example.com/users | jq '.[0].email'` позволяют извлекать значения из API-ответов прямо в терминале. Синтаксис доступа по путям в jq очень похож на JSONPath, хотя и имеет отличия в работе с массивами и фильтрами.

В современной разработке REST API отладка сложных JSON-ответов — ежедневная задача. Такие инструменты, как Postman, Insomnia и Bruno, позволяют писать JSONPath-выражения для извлечения значений из ответов в тестах и предварительных скриптах. AWS использует JSONPath в Step Functions для извлечения данных между шагами рабочего процесса. Kubernetes использует JSONPath в kubectl с флагом `--jsonpath` для извлечения полей из объектов кластера. Знание точных путей к полям в сложном JSON — фундамент эффективной работы с API и структурированными данными.