Provador de JSONPath
Prova expressions JSONPath amb el teu propi JSON al navegador. Filtres, porcions, descens recursiu, camins i JSON Pointers, amb exemples preparats.
Com provar una expressió JSONPath
- Enganxa el teu JSON a Dades JSON, o fes clic a Carrega dades d’exemple per fer servir el clàssic exemple de la llibreria.
- Escriu una expressió a Expressió JSONPath, o tria’n una d’Exemples.
- El resultat s’actualitza mentre escrius; Executa la consulta la torna a executar. La línia d’estat indica el nombre de coincidències.
- Fes servir Mostra per canviar entre Valors, Camins, JSON Pointers i Camins i valors, i després copia el resultat.
La sintaxi de JSONPath en poques paraules
| Sintaxi | Significat | Exemple |
|---|---|---|
$ |
l’arrel del document | $ |
.name o ['name'] |
un fill | $.store.bicycle |
* |
tots els fills | $.store.* |
.. |
descens recursiu, a qualsevol profunditat | $..author |
[n] |
índex d’una matriu, a partir de 0 | $..book[2] |
[start:end:step] |
porció; els nombres negatius compten des del final | $..book[-1:] |
[a,b] |
unió | $..book[0,1] |
[?(expr)] |
filtre | $..book[?(@.price < 10)] |
^ |
el pare de cada coincidència | $..book[?(@.price > 20)]^ |
~ |
el nom de la propietat en lloc del valor | $.store.*~ |
Els resultats es retornen en l’ordre del document. Camins dona camins normalitzats com $['store']['book'][0]['title'], i JSON Pointers dona la forma de l’RFC 6901 /store/book/0/title, útil per a JSON Patch o per als camins d’error dels validadors d’esquemes JSON.
Expressions de filtre: què s’admet
Els filtres s’avaluen amb jsonpath-plus en mode segur: l’expressió l’analitza i l’interpreta un petit avaluador, i mai no es passa a eval ni a new Function. Dins de [?( … )] pots fer servir:
@per a l’element actual,@.fieldi@['field']per als seus membres,@rootper a tot el document ($no està disponible dins d’un filtre);- les comparacions
==,!=,===,!==,<,<=,>,>=; - la lògica
&&,||,!, l’aritmètica+ - * / %i el ternaria ? b : c; - literals de cadena, de nombre,
true,false,nulli d’expressió regular; - mètodes dels mateixos valors, per exemple
@.title.startsWith('S'),@.tags.includes('new')o@.title.match(/lord/i); @property(la clau o l’índex de l’element actual),@parenti@path(el seu camí normalitzat), a l’estil de jsonpath-plus.
L’accés a constructor, __proto__ i al constructor Function està bloquejat. Si un filtre falla en un element, per exemple @.isbn.startsWith('0') en un llibre sense isbn, aquest element simplement no coincideix; un error de sintaxi a l’expressió sí que s’informa. Els filtres escrits a la manera de l’RFC 9535, [?@.price < 10] sense parèntesis, s’accepten i es llegeixen com [?(@.price < 10)]. Les funcions de l’RFC 9535 com length(), count(), match() i search() no estan disponibles: fes servir mètodes de JavaScript com @.name.length.
Els selectors de tipus de jsonpath-plus també funcionen al final d’un camí: $..*@number() retorna tots els nombres, i @string(), @boolean(), @array(), @object(), @null() i @integer() fan el mateix per a altres tipus.
Preguntes freqüents
S'envia el meu JSON a un servidor?
No. L’anàlisi i l’avaluació es fan al teu navegador, i les dades no surten mai del teu ordinador.
Per què el meu filtre no retorna res?
Comprova que el camí abans del filtre seleccioni una matriu o un objecte: $.store.book[?(@.price < 10)] filtra els llibres, mentre que $.store[?(@.price < 10)] mira book i bicycle. Una propietat que falta en un element és undefined, de manera que les comparacions amb ella són falses.
Quina diferència hi ha entre `==` i `===`?
Com a JavaScript, == converteix els tipus ("10" == 10 és cert) mentre que === compara tipus i valor.
Per què la sortida està limitada?
Només s’escriuen al resultat les primeres 10 000 coincidències, per mantenir la pàgina fluida; la línia d’estat dona el recompte complet.
Està estandarditzat JSONPath?
Sí, des del 2024, per l’RFC 9535. Les implementacions encara difereixen, sobretot en els filtres; aquesta eina segueix jsonpath-plus, la sintaxi del JSONPath original de Stefan Goessner.
Eines relacionades
- Formatador i validador de JSON Formatador i validador de JSON gratuït que embelleix, minimitza i comprova JSON al navegador, amb els errors de sintaxi indicats per línia i columna.
- Validador de JSON Schema Valida un document JSON amb un JSON Schema al navegador. Cada error es llista amb el seu camí de la instància, la paraula clau i el camí de l'esquema.
- Provador d'expressions regulars Prova expressions regulars de JavaScript en directe amb coincidències ressaltades, grups de captura, substitució i una explicació clara de cada element.