Бесплатный тестер JSONPath онлайн
Проверяйте выражения JSONPath на любом JSON мгновенно. Движок RFC 9535 плюс классический режим Goessner, виды «Значения / Пути / Оба», нормализованные пути, без eval. 100% приватно, работает в браузере.
Что такое тестер JSONPath?
Тестер JSONPath — это инструмент, который позволяет написать выражение JSONPath, вставить JSON-документ и точно увидеть, какие узлы выбирает выражение — как совпавшие значения, так и их точные расположения — не написав ни кода, ни скрипта. Для разработчиков он сокращает цикл с минут до миллисекунд: подправьте путь, посмотрите, как меняется результат, и отправляйте запрос с уверенностью.
JSONPath — это язык запросов для JSON, аналог JSON для XPath применительно к XML. Выражение строится из небольшого алфавита селекторов. $ — корень документа. Точка или скобка шагает в потомка: $.store или $['store']. Двойная точка .. — это рекурсивный спуск, он ищет на каждом уровне дерева. Подстановка * выбирает все элементы или члены. Скобки несут индексы массива ([0]), срезы ([start:end:step]), объединения ([a,b]) и выражения-фильтры ([?(@.price < 10)], где @ — проверяемый элемент). С этими частями вы можете вытащить одно поле из глубоко вложенного ответа API, проверить значения в тестах, управлять преобразованиями данных в системах вроде Kubernetes, AWS Step Functions и Azure Logic Apps или извлекать структурированные данные из нерегулярного JSON — всё без императивного кода обхода. JSONPath также печально известен непоследовательностью между реализациями, и это именно та проблема, которую хороший тестер выявляет до того, как она дойдёт до продакшена.
Этот тестер поставляется с двумя движками. По умолчанию — движок RFC 9535: RFC 9535 — это формальная спецификация JSONPath от IETF, выпущенная в феврале 2024 года, впервые точно стандартизировавшая язык после пятнадцати лет расходящихся реализаций. Она определяет точную грамматику, концепцию нормализованных путей для результатов и пять стандартных функций — length(), count(), match(), search(), value(). Наш движок RFC 9535 — это реализация без зависимостей, которая не использует eval, поэтому разбирает и интерпретирует выражения собственной грамматикой, а не компилирует их в JavaScript. Второй движок — Classic (Goessner), де-факто диалект 2007 года, который реализуют большинство старых онлайн-инструментов и библиотек; переключитесь на него, чтобы воспроизвести результаты из инструмента вроде jsonpath.com или запустить выражение, скопированное из устаревшего кода. Эти два диалекта согласны на распространённых путях, но расходятся в крайних случаях — пробелы и кавычки в фильтрах, порядок объединений, как сравниваются отсутствующие члены и какие функции существуют — поэтому возможность переключаться между ними в одном месте — самый быстрый способ диагностировать, почему выражение ведёт себя иначе, чем вы ожидали.
Что тестер выявляет помимо сырых значений: результат запроса JSONPath — это список узлов, и этот инструмент может показать его тремя способами. Вид «Значения» отображает совпавшие узлы как JSON-массив, ровно то, что вы потребляли бы в коде. Вид «Пути» отображает нормализованный путь каждого совпадения — каноническое расположение в скобках и кавычках вроде $['store']['book'][0]['title'], которое однозначно определяет, где в документе находится значение, как бы ни было написано выражение. Два выражения, выбирающих один и тот же узел, дают один и тот же нормализованный путь, что делает вид «Пути» незаменимым при отладке. Вид «Оба» показывает значения и пути рядом. Строка статистики сообщает, сколько узлов совпало.
Безопасность здесь — первостепенная забота. Многие онлайн-движки JSONPath работают на сервере или встраивают библиотеку, которая вычисляет предикаты фильтров через JavaScript eval — конструкция, породившая уязвимости удалённого выполнения кода, отслеживаемые как CVE-2024-21534 и CVE-2025-1302 в широко используемых пакетах JSONPath. Этот инструмент не использует eval вообще. У движка RFC 9535 нет пути eval, а классический движок построен на исправленном, зафиксированном релизе jsonpath-plus с явно отключённым eval. Это закрывает класс ошибок RCE и позволяет инструменту работать под строгой Content-Security-Policy, запрещающей unsafe-eval. Каждое вычисление локально: ваш JSON и ваше выражение никогда не покидают страницу, никогда не журналируются и никогда не сохраняются на диск — в localStorage сохраняются только настройки движка и вида. Это делает инструмент безопасным для проприетарных полезных нагрузок API, очищенных логов, внутренних конфигов и любых данных со схемой, которые вы не вставили бы в серверный сервис.
Если работа с JSON — ваша задача, сочетайте это с другими инструментами JSON на сайте: форматируйте и красиво отображайте ввод с помощью JSON Formatter, сравнивайте два документа с помощью JSON Diff, проверяйте полезную нагрузку по схеме с помощью JSON Schema Validator или превращайте образец ответа в типизированные интерфейсы с помощью JSON to TypeScript.
// The expression you build in this tester maps straight onto the
// RFC 9535 reference library used under the hood.
import { query, paths } from 'jsonpath-rfc9535';
const document = {
store: {
book: [
{ title: 'Sayings of the Century', author: 'Nigel Rees', price: 8.95 },
{ title: 'Sword of Honour', author: 'Evelyn Waugh', price: 12.99 },
{ title: 'Moby Dick', author: 'Herman Melville', price: 8.99 },
{ title: 'The Lord of the Rings', author: 'J. R. R. Tolkien', price: 22.99 }
]
}
};
// Values: query(document, path) returns the matched values directly.
const titles = query(document, '$.store.book[*].title');
// → ['Sayings of the Century', 'Sword of Honour', 'Moby Dick', 'The Lord of the Rings']
// Filter: books cheaper than 10.
const cheap = query(document, '$.store.book[?(@.price < 10)].title');
// → ['Sayings of the Century', 'Moby Dick']
// Normalized paths: paths(document, path) returns where each match lives.
const authorPaths = paths(document, '$..author');
// → ["$['store']['book'][0]['author']", "$['store']['book'][1]['author']", ...]
// RFC 9535 functions like length() are used INSIDE filters, not as a segment.
const longTitles = query(document, '$.store.book[?length(@.title) > 15]');
// → the two books whose title is longer than 15 characters Ключевые возможности
Стандартный движок RFC 9535 (без eval)
Движок по умолчанию реализует RFC 9535, формальную спецификацию JSONPath от IETF 2024 года — точную грамматику, нормализованные пути и пять стандартных функций. Он без зависимостей и не использует eval, поэтому разбирает и интерпретирует выражения собственной грамматикой, а не компилирует их в JavaScript. Он работает под строгой Content-Security-Policy.
Режим совместимости Classic (Goessner)
Один тумблер переключает на совместимый с Goessner движок (построенный на jsonpath-plus, сконструированный с отключённым eval), чтобы выражения из старых инструментов вроде jsonpath.com вели себя так, как вы там видели. Переключайтесь между RFC 9535 и Classic, чтобы сравнивать результаты и выяснять, почему путь совпадает по-разному в разных диалектах.
Три вида результата: Значения, Пути, Оба
«Значения» отображает совпавшие узлы как JSON-массив, ровно то, что вы потребляете в коде. «Пути» отображает нормализованный путь каждого совпадения вида $['store']['book'][0]['title']. «Оба» показывает их рядом, чтобы вы могли сопоставить каждое значение его точному расположению. Активный вид сохраняется между сеансами.
Нормализованные пути для каждого совпадения
Каждый результат несёт свой канонический нормализованный путь в скобках и кавычках — способ RFC 9535 однозначно определить расположение узла независимо от того, как было написано выражение. Два выражения, попадающие в один узел, дают один и тот же нормализованный путь, что делает отладку неоднозначных запросов простой.
Полная поддержка селекторов
Корень $, текущий элемент @, потомок .name, рекурсивный спуск ..name, подстановка [*], индекс массива [0], срез [start:end:step], объединение [a,b] и выражения-фильтры [?()] с операторами сравнения и логики. Встроенная шпаргалка документирует каждый селектор, чтобы вам не приходилось покидать страницу ради справки.
Функциональные расширения RFC 9535
Вызывайте length(), count(), match(), search() и value() внутри выражений — считайте элементы массива, проверяйте строку по шаблону I-Regexp или фильтруйте по размеру вложенного списка. Эти стандартные функции доступны в движке по умолчанию; инструмент подскажет переключить движок, если вы вызвали их в классическом режиме.
Форматирование, загрузка и примеры
«Форматировать JSON» красиво отображает ваш ввод, чтобы структура читалась перед запросом. «Загрузить» читает файл .json или .txt целиком в браузере — он никуда не отправляется. Список «Примеры» загружает заведомо рабочие стартовые выражения на образце данных, чтобы вы увидели работу движка перед адаптацией пути.
Обмен постоянными ссылками (без загрузки)
«Копировать ссылку» кодирует JSON, выражение, движок и вид в хеш URL. Браузеры никогда не передают фрагменты URL в запросах, поэтому переданная ссылка воспроизводит ваше полное состояние на машине получателя, не затрагивая серверы go-tools.org. Самодостаточно и удобно для аудита при совместной отладке.
100% приватно, только в браузере
Ваш JSON и ваше выражение никогда не покидают ваше устройство. Никаких сетевых запросов, никакого журналирования, никакой аналитики того, что вы вводите — проверьте в DevTools → Network. В localStorage сохраняются только настройки движка и вида. Безопасно для проприетарных полезных нагрузок, очищенных логов и любых данных, которые вы не вставили бы в jsonpath.com.
Разобранные примеры
Выбрать все названия книг из документа книжного магазина
$.store.book[*].title
["Sayings of the Century", "Sword of Honour", "Moby Dick", "The Lord of the Rings"]
Вставьте классический JSON книжного магазина Goessner, введите выражение, и вид «Значения» вернёт JSON-массив всех четырёх названий. Переключитесь на «Пути», чтобы увидеть каждый результат как нормализованный путь вида $['store']['book'][0]['title']. Подстановка [*] перебирает каждый элемент массива book; .title проецирует один член из каждого.
Отфильтровать книги дешевле 10 с помощью выражения-фильтра
$.store.book[?(@.price < 10)].title
["Sayings of the Century", "Moby Dick"]
Селектор-фильтр [?()] оставляет только те элементы массива, для которых предикат истинен; @ — это текущий элемент. На данных книжного магазина (цены 8.95, 12.99, 8.99, 22.99) подходят две книги. Оба движка принимают такую форму, но учтите, что классический режим (Goessner) пишет тот же фильтр как [?(@.price<10)] — переключите движок, если вы скопировали выражение из более старого инструмента.
Обойти всё дерево с помощью рекурсивного спуска
$..author
["Nigel Rees", "Evelyn Waugh", "Herman Melville", "J. R. R. Tolkien"]
Оператор .. спускается на каждый уровень документа и собирает каждый член author, где бы он ни появился, независимо от глубины вложенности. Рекурсивный спуск — самый быстрый способ извлечь одно поле из глубоко вложенной или нерегулярной структуры, не прописывая полный путь.
Срез массива с [start:end:step]
$.store.book[0:2].title
["Sayings of the Century", "Sword of Honour"]
Срезы массива следуют тому же полуоткрытому соглашению [start:end], что и в Python и JavaScript: индекс 0 вплоть до (но не включая) индекс 2 возвращает первые две книги. Добавьте третье поле для шага — $.store.book[::2] берёт каждый второй элемент. Верхняя граница не включается — частая ошибка на единицу, которую вид «Пути» делает очевидной.
Отфильтровать по длине названия функцией length() из RFC 9535
$.store.book[?length(@.title) > 15]
[{"title": "Sayings of the Century", "author": "Nigel Rees", "price": 8.95}, {"title": "The Lord of the Rings", "author": "J. R. R. Tolkien", "price": 22.99}] length() — одна из пяти стандартных функций RFC 9535, и она допустима только внутри выражения-фильтра [?...], но никогда как самостоятельный сегмент пути вида $.store.book.length(), который грамматика RFC 9535 отвергает (такая форма сегмента — расширение jsonpath-plus, а не стандартный JSONPath). Здесь фильтр оставляет каждую книгу, у которой название длиннее 15 символов; на данных книжного магазина выбираются названия длиннее 15 символов (например, «Sayings of the Century» и «The Lord of the Rings»), а более короткие, такие как «Moby Dick» и «Sword of Honour», исключаются. count(), match(), search() и value() аналогично используются внутри фильтров. Эти функции — возможность RFC 9535: переключитесь на стандартный движок (по умолчанию), чтобы их использовать; классический режим (Goessner) их не реализует.
Выбрать объединение двух именованных членов
$.store.book[0]['title','author']
["Sayings of the Century", "Nigel Rees"]
Селектор-объединение [a,b] собирает несколько потомков в одном выражении. Здесь он извлекает и title, и author первой книги. Объединения также работают с индексами массива — [0,2] берёт первый и третий элементы. Вид «Оба» сопоставляет каждое значение его нормализованному пути, так что видно точно, какой член дал какой результат.
Как пользоваться тестером JSONPath
- 1
Вставьте или загрузите свой JSON
Перетащите JSON в поле ввода, вставьте его или нажмите «Загрузить», чтобы открыть файл .json / .txt с диска. «Форматировать JSON» переформатирует документ. Некорректный JSON помечается на месте сообщением парсера ещё до запроса.
- 2
Выберите движок
RFC 9535 (стандарт IETF 2024 года, без eval) — по умолчанию. Переключитесь на Classic (Goessner), когда запускаете выражение, скопированное из более старого инструмента вроде jsonpath.com, чтобы результаты совпали с тем, что вы там видели.
- 3
Введите выражение JSONPath
Ведущий $ показан за вас. Начните с детского пути вроде .store.book[*].title, индекса вроде [0], рекурсивного спуска вроде ..author или фильтра вроде [?(@.price < 10)]. Результаты обновляются вживую по мере ввода.
- 4
Переключите вид результата
«Значения» показывает JSON-массив совпавших значений. «Пути» показывает нормализованный путь каждого совпадения вида $['store']['book'][0]['title']. «Оба» показывает их рядом, чтобы вы могли сопоставить каждое значение его точному расположению в документе.
- 5
Скопируйте результат или поделитесь постоянной ссылкой
«Копировать результат» помещает вывод в буфер обмена. «Копировать ссылку» кодирует JSON, выражение, движок и вид в хеш URL (без загрузки), чтобы коллега мог воспроизвести точно тот же запрос локально на своей машине.
Частые ошибки JSONPath
Забыли ведущий корень $
Каждое выражение JSONPath начинается с корня, записываемого как $. Пропуск его (или запись пути так, будто $ подразумевается) заставляет большинство движков отвергнуть выражение. Тестер показывает $ за вас, поэтому начните ввод со следующего селектора — точки, скобки или рекурсивного спуска.
store.book[*].title → invalid (no root)
$.store.book[*].title → selects every title
Ошибка на единицу в срезе — ожидали, что конечный индекс включён
Срезы полуоткрыты: [start:end] идёт вплоть до (но не включая) end. [0:2] возвращает два элемента (индексы 0 и 1), а не три. Чтобы включить последний элемент по индексу, используйте [start:] или сдвиньте верхнюю границу на единицу дальше.
$.store.book[0:2] → first TWO books, not three
$.store.book[0:3] → first three books (indices 0,1,2)
Использовали классическое выражение в движке RFC 9535 (или наоборот)
Выражение, скопированное с jsonpath.com или из jsonpath-plus, может разбираться или совпадать иначе под RFC 9535 из-за отличий фильтров, объединений и функций. Если результаты выглядят неверно, переключите тумблер движка под тот диалект, для которого выражение было написано.
Classic filter run under RFC 9535 → parse error or unexpected nodes
Switch engine to Classic (Goessner) → reproduces the original result
Вызвали функцию RFC 9535 как самостоятельный сегмент
length(), count(), match(), search() и value() — функциональные расширения RFC 9535, допустимые только внутри фильтра [?...]. Самостоятельный вызов в сегменте вида $.store.book.length() отвергается грамматикой RFC 9535 (это расширение jsonpath-plus, не стандарт). Вызывайте функцию внутри фильтра и используйте движок RFC 9535 по умолчанию — классический движок (Goessner) эти функции не реализует.
$.store.book.length() → parse error (not a valid RFC 9535 segment)
$.store.book[?length(@.title) > 15] → books with a title over 15 chars
Забыли @ внутри выражения-фильтра
Внутри фильтра [?()] текущий элемент — это @, а не $. Запись $.price отсылает обратно к корню документа, а не к проверяемому элементу, поэтому фильтр не выбирает ничего или выбирает всё. Используйте @, чтобы адресовать члены фильтруемого элемента.
$.store.book[?($.price < 10)] → wrong scope
$.store.book[?(@.price < 10)] → books under 10
Заключили имя члена в неверный синтаксис кавычек
Скобочная нотация требует кавычек вокруг строковых ключей: $['store'] или $.store оба работают, но $[store] (без кавычек в скобках) — ошибка индекса/идентификатора. Используйте кавычки внутри скобок для любого ключа с пробелами, точками или специальными символами: $['first name'].
$[store][book] → invalid bracket selectors
$['store']['book'] → same as $.store.book
Ожидали, что рекурсивный спуск остановится на первом уровне
$..author не останавливается наверху — он собирает каждый член author на каждой глубине. Если вам нужны только прямые потомки, пропишите путь. Рекурсивный спуск по большому документу может вернуть гораздо больше узлов, чем задумано.
$..price → every price anywhere in the tree
$.store.book[*].price → only book prices
Кто пользуется этим инструментом
- Извлечение полей из ответа API
- Вытаскивайте идентификаторы запросов, вложенные атрибуты ресурсов или список имён из JSON-полезной нагрузки без написания кода обхода. Постройте путь здесь на образце ответа, подтвердите в виде «Значения», что он возвращает ровно нужные узлы, затем вставьте проверенное выражение в своё приложение или тест.
- Написание проверок для интеграционных тестов
- Многие тестовые фреймворки и инструменты контрактного тестирования (REST Assured, Karate, Postman) используют JSONPath для проверок тел ответов. Набросайте путь проверки здесь, убедитесь, что он выбирает нужный узел на реальном ответе, и скопируйте его в свой тест — поймав неверный путь до того, как набор станет красным.
- Настройка преобразований данных в конвейерах
- Kubernetes, AWS Step Functions, Azure Logic Apps и многие ETL-инструменты принимают JSONPath для адресации полей в полезных нагрузках событий. Прототипируйте точный путь на репрезентативном событии здесь, подтвердите, что он разрешается, и поместите его в конфигурацию конвейера с уверенностью, что он указывает туда, куда вы задумали.
- Приватное воспроизведение результата jsonpath.com
- Есть выражение из серверного движка, но нельзя вставлять свои данные на сторонний сайт? Переключитесь в режим Classic (Goessner), загрузите свой JSON и воспроизведите тот же результат локально — ни одна полезная нагрузка не покидает браузер, так что проприетарные данные остаются на вашей машине.
- Миграция устаревших выражений на RFC 9535
- Переходите на систему, заявляющую о соответствии RFC 9535? Запустите устаревшее выражение в режиме Classic, затем переключитесь на движок RFC 9535, чтобы увидеть, разбирается ли оно по-прежнему и совпадает ли с теми же узлами. Сравнение двух движков точно указывает на отличия фильтров, объединений и функций, на которые вы иначе наткнулись бы в продакшене.
- Отладка, почему путь возвращает не те узлы
- Путь, который выбирает слишком много или слишком мало, трудно понять только по значениям. Переключитесь на вид «Пути», чтобы увидеть нормализованное расположение каждого совпадения — точный индекс массива, точную цепочку членов — и ошибка на единицу в срезе или случайный рекурсивный спуск сразу становятся очевидными.
- Обучение или ревью JSONPath
- Откройте рабочее выражение на образце данных и пройдите по нему селектор за селектором, переключаясь между «Значения» и «Пути», чтобы обучающийся видел и что выбрано, и где оно находится. Шпаргалка и разобранные примеры дают структурированный справочник для код-ревью или онбординга.
Заметки о движке и алгоритме
- Движок RFC 9535 (jsonpath-rfc9535, без зависимостей)
- Движок по умолчанию реализует грамматику IETF RFC 9535 напрямую: он токенизирует и разбирает выражение в абстрактное синтаксическое дерево и интерпретирует его против документа. На всём пути нет ни eval, ни конструктора Function, поэтому он невосприимчив к классу ошибок eval-инъекций и работает под строгой Content-Security-Policy.
- Классический движок (jsonpath-plus, eval отключён)
- Классический движок (Goessner) — это jsonpath-plus, зафиксированный на исправленном релизе (>= 10.4.0) и сконструированный с опцией eval, явно установленной в false. Это сохраняет совместимость с диалектом Goessner, закрывая при этом векторы удалённого выполнения кода, отслеживаемые как CVE-2024-21534 и CVE-2025-1302, которые затрагивали путь фильтрации библиотеки на основе eval по умолчанию.
- Генерация нормализованного пути
- Каждое совпадение сообщается с его нормализованным путём RFC 9535 — канонической формой в скобочной нотации с одинарными кавычками ($['store']['book'][0]['title']) и индексами массива как голыми целыми числами. Нормализованные пути стабильны и уникальны для узла, так что эквивалентные выражения дают идентичные пути, на что виды «Пути» и «Оба» опираются для однозначной идентификации результата.
- Ленивая загрузка чанков движка
- Оба движка загружаются как отдельные чанки JavaScript только при первом выборе, поэтому начальная страница остаётся лёгкой, а движок, который вы не используете, никогда не скачивается. Переключение движков немедленно пересчитывает текущее выражение против текущего документа без перезагрузки страницы.
- Локальное чтение файлов и форматирование JSON
- Кнопка «Загрузить» использует браузерный API FileReader, чтобы прочитать файл .json или .txt во ввод полностью на стороне клиента — файл никогда не передаётся. «Форматировать JSON» разбирает и пересериализует ввод с отступом в два пробела, выявляя ошибки разбора на месте, так что некорректный JSON ловится до вычисления.
- Постоянные ссылки через хеш URL (никогда не передаются)
- Состояние для обмена кодируется во фрагменте location.hash, неся JSON, выражение, активный движок и вид результата. Браузеры никогда не включают фрагмент в HTTP-запросы, поэтому серверы go-tools.org получают ноль данных при открытии постоянной ссылки; восстановление происходит полностью на устройстве получателя.
Лучшие практики JSONPath
- Выбирайте движок под вашу цель
- Если ваша целевая система заявляет о соответствии RFC 9535, пишите и проверяйте против движка RFC 9535. Если вы воспроизводите или сопровождаете выражение из более старого инструмента или библиотеки, используйте Classic (Goessner). Проверка против неверного диалекта — самая частая причина, по которой путь, работавший в тестере, отказывает в продакшене.
- Проверяйте видом «Пути», а не только «Значения»
- Вид «Значения» говорит, что совпало; вид «Пути» говорит, где. Когда запрос возвращает на вид правильные значения, он всё ещё может выбирать их из неверного расположения — случайный рекурсивный спуск или слишком широкая подстановка. Проверьте нормализованные пути, чтобы убедиться, что выражение попадает ровно в те узлы, которые вы задумали.
- Помните о невключаемой верхней границе среза
- [0:2] выбирает индексы 0 и 1, а не от 0 до 2 — верхняя граница не включается, как в Python и JavaScript. Ошибки на единицу в срезах — самый частый баг JSONPath. Используйте вид «Пути», чтобы прочитать точный индекс каждого выбранного элемента и подтвердить границу перед отправкой.
- Предпочитайте явный путь рекурсивному спуску, когда можете
- $..price удобен, но совпадает с каждой ценой где угодно в документе, включая те, что вы не задумывали. Когда вы знаете структуру, пропишите путь ($.store.book[*].price), чтобы запрос оставался точным и предсказуемым по мере роста данных. Оставьте .. для действительно нерегулярных или неизвестных форм.
- Сохраняйте единообразие пробелов и кавычек в фильтрах
- RFC 9535 в точности следует своей грамматике для выражений-фильтров, тогда как классический диалект свободнее. Пишите фильтры чисто — заключайте строковые литералы в одинарные кавычки ('fiction'), оставляйте пробелы вокруг операторов и не полагайтесь на снисходительный разбор — чтобы одно и то же выражение вычислялось одинаково независимо от того, какой движок или библиотека в итоге его запустят.
Частые вопросы
Отправляются ли мой JSON или выражение JSONPath на ваш сервер?
Что такое JSONPath и для чего он используется?
В чём разница между RFC 9535 и классическим синтаксисом Goessner?
Почему одно и то же выражение возвращает разные результаты в двух движках и как использовать выражение, скопированное с jsonpath.com?
Как работают выражения-фильтры [?()]?
Что делает рекурсивный спуск (..)?
Что такое функции RFC 9535 length(), count(), match(), search() и value()?
Как работают срезы массива [start:end:step]?
Что такое селектор-объединение и как выбрать несколько ключей сразу?
Можно ли поделиться запросом JSONPath и его JSON по ссылке?
Есть ли максимальный размер JSON?
Чем это отличается от jsonpath.com и безопасно ли — без eval?
Что показывают виды «Значения», «Пути» и «Оба»?
Работает ли это офлайн и как насчёт Content-Security-Policy?
Похожие инструменты
Все инструменты →Base64 декодер и кодировщик
Кодирование и форматирование
Декодирование и кодирование Base64 онлайн бесплатно. Преобразование в реальном времени с полной поддержкой UTF-8 и эмодзи. Полная приватность — работает в браузере. Без регистрации.
Конвертер Base64 в изображение
Кодирование и форматирование
Декодируйте строку Base64 или data URI обратно в изображение прямо в браузере. Предпросмотр, размеры и MIME, затем скачивание как PNG, JPG, GIF, SVG. Без загрузки.
Конвертер CSV в JSON
Кодирование и форматирование
Конвертируйте CSV в JSON в браузере. RFC 4180, определение типов, заголовок, безопасность больших целых. 100% приватно, без загрузки.
Конвертер .env в JSON
Кодирование и форматирование
Вставьте файл .env — получите JSON мгновенно. Пароли БД, API-ключи и токены не покидают браузер: 100% приватно, без загрузки, парсер dotenv.
Конвертер HTML в Markdown
Кодирование и форматирование
Конвертируйте HTML в чистый Markdown прямо в браузере — GFM-таблицы, списки задач и ссылки. Выбирайте ATX/Setext заголовки и inline или reference ссылки. Удобно для переноса веб-контента и подачи в LLM. 100% приватно.
Конвертер изображений в Base64
Кодирование и форматирование
Кодируйте изображения в data URI Base64 прямо в браузере — PNG, JPG, GIF, WebP, SVG, ICO. Копируйте вывод для HTML, CSS, Markdown и JSON. 100% приватно, без загрузки.