Probador de JSONPath

Pegue un documento JSON y escriba una consulta JSONPath. Obtendrá el número de coincidencias y, para cada una, su ruta normalizada y su valor. La consulta se ejecuta en su navegador y no se envía nada.

Gratuita Funciona en su navegador Revisada: martes, 10 de noviembre de 2026

El texto debe ser JSON válido. El ejemplo es el documento de la librería de la RFC 9535, sección 1.5.

Empieza por $, la raíz. Los filtros usan @ para el elemento que se prueba, como en [[email protected] < 10]. Los espacios al principio y al final se ignoran.

Resultado

Coincidencias — El número de nodos que selecciona la consulta. Un nodo puede seleccionarse más de una vez si la consulta lo repite.
Coincidencias, en orden

Esta herramienta funciona en su navegador. Lo que escribe no se envía a nosotros.

Cómo se usa

  1. Pegue el documento JSON en Documento JSON. Use el ejemplo para probar primero la herramienta.
  2. Escriba la Consulta JSONPath en el campo de debajo, empezando por $. Los filtros van entre corchetes: [[email protected] < 10].
  3. Lea el número de Coincidencias y después la tabla de Coincidencias, en orden: cada fila tiene la ruta de una coincidencia y su valor.
  4. Si un mensaje muestra la posición de un problema, mire ese carácter de la consulta y corrija los corchetes, las comillas o los puntos.

Cómo selecciona nodos una consulta

Una consulta es una lista de segmentos después de $. Un segmento hijo como .store o [0] selecciona los hijos de cada nodo al que llega, y un segmento descendiente como ..author visita el nodo y todos sus descendientes antes de seleccionar. Los nodos de un segmento aparecen en el orden de la entrada, y un array siempre se lee en su orden (RFC 9535, secciones 2.5 y 2.5.2.2).

Un selector de nombre coincide con un miembro con exactamente ese nombre, y solo en un objeto. Un índice negativo cuenta desde el final del array, así que -1 es el último elemento. Una rebanada como [1:5:2] toma el inicio, el final y el paso, y un paso de 0 no selecciona nada (sección 2.3.4.2).

Filtros, funciones y lo que la herramienta rechaza

Un filtro [?...] prueba cada hijo de un array o de un objeto. Las comparaciones usan ==, !=, <, <=, > y >=; &&, || y ! combinan pruebas, y los paréntesis las agrupan. Un miembro que falta es Nothing, y dos valores Nothing son iguales. Los números se comparan con números, los textos con textos, y un valor de un tipo nunca es igual a un valor de otro tipo (sección 2.3.5.2).

Las funciones length, count, value, match y search se admiten como las define la RFC 9535. match y search reciben una expresión regular escrita en I-Regexp, el formato de la RFC 9485; un patrón que no es I-Regexp válido no coincide con nada. Los literales de array y de objeto no forman parte de la gramática, así que la herramienta los rechaza, y también rechaza el resultado de una función usado solo en un filtro, porque la RFC 9535 dice que eso no está bien tipado.

El ejemplo de la librería

Con el documento de ejemplo y la consulta $.store.book[[email protected] < 10].title, los libros más baratos que 10 son el primero y el tercero. Sus títulos son las dos coincidencias de abajo, con la ruta normalizada de cada una.

Ruta normalizada Valor (JSON)
$['store']['book'][0]['title'] "Sayings of the Century"
$['store']['book'][2]['title'] "Moby Dick"

Preguntas frecuentes

¿Por qué una consulta no devuelve nada si la clave existe?

Un selector de nombre solo coincide con un miembro de un objeto que tenga exactamente ese nombre, y la comparación distingue mayúsculas de minúsculas. Nunca coincide con un elemento de un array, así que use un índice o un comodín para un array.

¿Por qué 13 y "13" no son iguales en un filtro?

La RFC 9535 compara valores de tipos distintos como no iguales (sección 2.3.5.3). Un número y un texto son valores distintos, así que == es falso y != es verdadero, aunque los caracteres parezcan iguales.

¿Qué selecciona un índice negativo?

Un índice negativo cuenta desde el final del array: -1 es el último elemento y -2 el anterior. Un índice fuera del array no selecciona nada y no es un error (sección 2.3.3.2).

¿Por qué la herramienta rechaza length(@) cuando está sola en un filtro?

length devuelve un número, y un filtro necesita una prueba que sea verdadera o falsa. Compare el resultado, como en [?length(@.title) > 15], que sí está bien tipado.

¿La herramienta envía mi JSON a un servidor?

No. Su navegador lee el documento con JSON.parse, la consulta también se ejecuta allí, y nada se guarda. La página no hace ninguna petición de red.

Fuentes

Cifras y texto revisados por última vez el martes, 10 de noviembre de 2026.

Usamos cookies necesarias para que el sitio funcione. Si usted lo acepta, Google también usa cookies publicitarias para mostrar anuncios personalizados. Si las rechaza, seguirá viendo anuncios, pero no estarán personalizados.