Probador JSONPath

Ejecuta una consulta JSONPath en el navegador. Para dar formato al documento, usa el formateador JSON

Qué se puede consultar

JSONPath saca valores de un documento JSON. Esta página ejecuta un subconjunto práctico y devuelve cada coincidencia como JSON. Para ordenar el documento antes, usa el formateador JSON.

Cómo usarla

  1. Pegue el JSON en el cuadro de arriba y una ruta en JSONPath. La ruta empieza en $.
  2. Convertir ejecuta la consulta. La línea junto a la ruta dice cuántas coincidencias volvieron.
  3. Mostrar ejemplo carga {"store":{"book":[{"author":"Nigel","price":8},{"author":"Evelyn","price":12}],"bicycle":{"price":19}}} y la ruta $.store.book[*].author. El resultado es un array JSON de Nigel y Evelyn, y el recuento es 2.
  4. Los atajos rellenan el mismo documento si el cuadro está vacío. $.store.book[?(@.price<10)].author devuelve Nigel. $..price devuelve 8, 12 y 19.
  5. Borrar todo vacía el documento, devuelve la ruta a $ y borra el recuento. Copiar resultado copia las coincidencias JSON.

Rutas que acepta esta página

$ es la raíz. .key y ['key'] leen una propiedad. [n] lee un índice, y un índice negativo cuenta desde el final. [*] lee cada elemento o propiedad. [start:end:step] recorta un array, con el final excluido. [0,2] elige esos índices. ..key recorre cada objeto anidado y recoge esa clave.

Un filtro tiene la forma [?(@.price<10)] o [?(@.author=='Nigel')]. Las comparaciones son ==, !=, <, >, <= y >=. El texto se compara de forma exacta. El orden se aplica a los números. El filtro se ejecuta sobre un array. Una ruta desconocida, o un JSON que no se puede analizar, es un error. Cero coincidencias es un array vacío válido.

Dónde se usa

  • Sacar un campo de cada objeto de una lista.
  • Quedarse con las filas cuyo precio está por debajo de un número.
  • Encontrar todos los precios, también los anidados en objetos distintos.

Preguntas

¿Por qué el resultado es un array cuando solo hay un autor?

Cada consulta devuelve la lista de coincidencias, así que un acierto sigue siendo un array de un elemento.

¿Funciona una expresión de script?

Los filtros son una comparación sobre @ y sus campos. Cualquier otra sintaxis de script se detiene con un error.