JSONPath тестер
Тестирајте JSONPath изрази врз вашиот JSON во прелистувачот. Филтри, исечоци, рекурзивно спуштање, патеки и JSON Pointers, со готови примери.
Како да тестирате JSONPath израз
- Залепете го вашиот JSON во JSON податоци или кликнете Вчитај примерок на податоци за да го користите класичниот пример со книжарница.
- Внесете израз во JSONPath израз или изберете од Примери.
- Резултатот се освежува додека пишувате; Изврши барање го извршува повторно. Статусната линија го дава бројот на совпаѓања.
- Користете Прикажи за да префрлате меѓу Вредности, Патеки, JSON Pointers и Патеки и вредности, па копирајте го резултатот.
JSONPath синтакса накратко
| Синтакса | Значење | Пример |
|---|---|---|
$ |
коренот на документот | $ |
.name или ['name'] |
дете | $.store.bicycle |
* |
секое дете | $.store.* |
.. |
рекурзивно спуштање, на која било длабочина | $..author |
[n] |
индекс на низа, од 0 | $..book[2] |
[start:end:step] |
исечок; негативните броеви бројат од крајот | $..book[-1:] |
[a,b] |
унија | $..book[0,1] |
[?(expr)] |
филтер | $..book[?(@.price < 10)] |
^ |
родителот на секое совпаѓање | $..book[?(@.price > 20)]^ |
~ |
името на својството наместо вредноста | $.store.*~ |
Резултатите се враќаат по редоследот на документот. Патеки дава нормализирани патеки како $['store']['book'][0]['title'], а JSON Pointers ја дава формата од RFC 6901 /store/book/0/title, корисна за JSON Patch или за патеките на грешки на валидаторите на JSON Schema.
Филтер изрази: што е поддржано
Филтрите се оценуваат со jsonpath-plus во безбеден режим: изразот го анализира и толкува мал евалуатор, никогаш не се предава на eval или new Function. Во [?( … )] можете да користите:
@за тековната ставка,@.fieldи@['field']за нејзините членови,@rootза целиот документ ($не е достапен во филтер);- споредби
==,!=,===,!==,<,<=,>,>=; - логика
&&,||,!, аритметика+ - * / %и тернарниот операторa ? b : c; - литерали за низа, број,
true,false,nullи регуларен израз; - методи на самите вредности, на пример
@.title.startsWith('S'),@.tags.includes('new')или@.title.match(/lord/i); @property(клучот или индексот на тековната ставка),@parentи@path(нејзината нормализирана патека), во стил на jsonpath-plus.
Пристапот до constructor, __proto__ и конструкторот Function е блокиран. Ако филтер не успее на една ставка, на пример @.isbn.startsWith('0') на книга без isbn, таа ставка едноставно не се совпаѓа; синтаксна грешка во изразот се пријавува. Филтрите напишани по RFC 9535, [?@.price < 10] без загради, се прифаќаат и се читаат како [?(@.price < 10)]. Функциите од RFC 9535 како length(), count(), match() и search() не се достапни: користете JavaScript методи како @.name.length.
Селекторите на типови од jsonpath-plus исто така работат на крајот од патека: $..*@number() го враќа секој број, а @string(), @boolean(), @array(), @object(), @null() и @integer() го прават истото за другите типови.
Често поставувани прашања
Дали мојот JSON се испраќа на сервер?
Не. Анализирањето и оценувањето се случуваат во вашиот прелистувач, а вашите податоци никогаш не го напуштаат вашиот компјутер.
Зошто мојот филтер не враќа ништо?
Проверете дали патеката пред филтерот избира низа или објект: $.store.book[?(@.price < 10)] ги филтрира книгите, додека $.store[?(@.price < 10)] гледа во book и bicycle. Својство што недостасува кај ставка е undefined, па споредбите со него се неточни.
Која е разликата меѓу `==` и `===`?
Како во JavaScript, == ги конвертира типовите ("10" == 10 е точно), додека === го споредува типот и вредноста.
Зошто излезот е ограничен?
Во резултатот се запишуваат само првите 10 000 совпаѓања за страницата да остане одзивна; статусната линија го дава целиот број.
Дали JSONPath е стандардизиран?
Да, од 2024, со RFC 9535. Имплементациите сепак се разликуваат, особено во филтрите; оваа алатка го следи jsonpath-plus, синтаксата на оригиналниот JSONPath на Stefan Goessner.
Поврзани алатки
- JSON форматер и валидатор Бесплатен JSON форматер и валидатор што улепшува, минифицира и проверува JSON во прелистувачот, со синтаксни грешки пријавени по ред и колона.
- JSON Schema валидатор Валидирајте JSON документ според JSON Schema во прелистувачот. Секоја грешка е наведена со патека на инстанцата, клучен збор и патека во шемата.
- Regex тестер Тестирајте JavaScript регуларни изрази во живо: означени совпаѓања, групи за снимање, замена и објаснување на секој дел од изразот.