JSONPath Tester
Subukan ang mga JSONPath expression sa sarili mong JSON sa browser. May mga filter, slice, recursive descent, path at JSON Pointer, at handang halimbawa.
Paano subukan ang JSONPath expression
- I-paste ang iyong JSON sa JSON data, o i-click ang I-load ang sample na data para gamitin ang klasikong halimbawa ng bookstore.
- Mag-type ng expression sa JSONPath expression, o pumili mula sa Mga halimbawa.
- Nag-a-update ang resulta habang nagta-type ka; muling pinapatakbo ito ng Patakbuhin ang query. Ibinibigay ng status line ang bilang ng mga tugma.
- Gamitin ang Ipakita para lumipat sa pagitan ng Mga value, Mga path, Mga JSON Pointer at Mga path at value, saka kopyahin ang resulta.
Ang syntax ng JSONPath sa maikling salita
| Syntax | Kahulugan | Halimbawa |
|---|---|---|
$ |
ang ugat ng document | $ |
.name o ['name'] |
isang child | $.store.bicycle |
* |
bawat child | $.store.* |
.. |
recursive descent, sa anumang lalim | $..author |
[n] |
index ng array, mula 0 | $..book[2] |
[start:end:step] |
slice; ang mga negatibong numero ay binibilang mula sa dulo | $..book[-1:] |
[a,b] |
union | $..book[0,1] |
[?(expr)] |
filter | $..book[?(@.price < 10)] |
^ |
ang parent ng bawat tugma | $..book[?(@.price > 20)]^ |
~ |
ang pangalan ng property sa halip na ang value | $.store.*~ |
Ibinabalik ang mga resulta ayon sa pagkakasunod sa document. Ang Mga path ay nagbibigay ng mga normalized na path gaya ng $['store']['book'][0]['title'], at ang Mga JSON Pointer ay nagbibigay ng anyong RFC 6901 na /store/book/0/title, na madaling gamitin sa JSON Patch o sa mga path ng error ng mga JSON Schema validator.
Mga filter expression: ano ang suportado
Ine-evaluate ang mga filter gamit ang jsonpath-plus sa safe mode: pina-parse at binibigyang-kahulugan ang expression ng maliit na evaluator, hindi kailanman ipinapasa sa eval o new Function. Sa loob ng [?( … )], magagamit mo ang:
@para sa kasalukuyang item,@.fieldat@['field']para sa mga miyembro nito,@rootpara sa buong document (hindi available ang$sa loob ng filter);- mga paghahambing na
==,!=,===,!==,<,<=,>,>=; - lohika na
&&,||,!, aritmetika na+ - * / %at ternary naa ? b : c; - mga literal na string, numero,
true,false,nullat regular expression; - mga method ng mga value mismo, halimbawa
@.title.startsWith('S'),@.tags.includes('new')o@.title.match(/lord/i); @property(ang key o index ng kasalukuyang item),@parentat@path(ang normalized na path nito), sa istilo ng jsonpath-plus.
Hinaharang ang access sa constructor, __proto__ at sa Function constructor. Kung pumalya ang filter sa isang item, halimbawa @.isbn.startsWith('0') sa aklat na walang isbn, hindi lang tutugma ang item na iyon; iniuulat ang syntax error sa expression. Tinatanggap ang mga filter na isinulat ayon sa RFC 9535, [?@.price < 10] na walang panaklong, at binabasa bilang [?(@.price < 10)]. Hindi available ang mga function ng RFC 9535 gaya ng length(), count(), match() at search(): gumamit na lang ng mga method ng JavaScript gaya ng @.name.length.
Gumagana rin ang mga type selector ng jsonpath-plus sa dulo ng path: ang $..*@number() ay nagbabalik ng bawat numero, at ang @string(), @boolean(), @array(), @object(), @null() at @integer() ay ganoon din para sa ibang uri.
Mga madalas itanong
Ipinapadala ba sa server ang JSON ko?
Hindi. Nangyayari sa iyong browser ang pag-parse at pag-evaluate, at hindi umaalis sa iyong computer ang iyong data.
Bakit walang ibinabalik ang filter ko?
Tiyaking pumipili ng array o object ang path bago ang filter: ang $.store.book[?(@.price < 10)] ay nagfi-filter ng mga aklat, habang ang $.store[?(@.price < 10)] ay tumitingin sa book at bicycle. Ang property na wala sa isang item ay undefined, kaya false ang mga paghahambing dito.
Ano ang pagkakaiba ng `==` at `===`?
Tulad sa JavaScript, kino-convert ng == ang mga type (true ang "10" == 10) habang ikinukumpara ng === ang type at value.
Bakit limitado ang output?
Ang unang 10,000 tugma lang ang isinusulat sa resulta, para manatiling tumutugon ang page; ibinibigay ng status line ang buong bilang.
Standardized ba ang JSONPath?
Oo, mula 2024, ng RFC 9535. Nagkakaiba pa rin ang mga implementation, lalo na sa mga filter; sinusunod ng tool na ito ang jsonpath-plus, ang syntax ng orihinal na JSONPath ni Stefan Goessner.
Mga kaugnay na tool
- JSON Formatter at Validator Libreng JSON formatter at validator na nagbi-beautify, nagmi-minify at nagsusuri ng JSON sa iyong browser, may ulat ng syntax error ayon sa linya at column.
- JSON Schema Validator I-validate ang JSON document laban sa JSON Schema sa iyong browser. Bawat error ay nakalista kasama ang instance path, keyword at schema path nito.
- Regex Tester Subukan nang live ang mga JavaScript regular expression: may naka-highlight na match, capture group, pagpapalit at paliwanag ng bawat token.