DevToolPal
ES

Evaluador de JSONPath

Ejecuta una consulta JSONPath sobre un JSON y muestra cada valor coincidente y su ruta, con filtros y funciones (RFC 9535).

Se ejecuta en local, nunca se sube

Opciones

Mostrar

JSON

0 caracteres · 0 B

Coincidencias

0 caracteres · 0 B

Qué hace

JSONPath es un lenguaje de consulta para JSON, parecido a lo que XPath es para XML. Una consulta como $.store.book[*].title recorre un documento y selecciona los valores que te interesan. Este evaluador ejecuta una expresión JSONPath sobre el JSON que pegues y muestra cada coincidencia en un array JSON: los valores encontrados, sus rutas normalizadas (por ejemplo $['store']['book'][0]['title']) o ambas cosas.

Sigue RFC 9535, el estándar del IETF publicado en 2024, así que los resultados coinciden con las bibliotecas modernas de JavaScript, Java, Python, Go y otros lenguajes. Úsalo para probar una consulta antes de ponerla en el código, para averiguar por qué un filtro no devuelve nada o para extraer unos pocos campos de una respuesta de API grande.

Cómo se usa

  1. Pega JSON en el cuadro JSON, sube un archivo .json o pulsa Ejemplo para cargar el clásico documento de la librería.
  2. Escribe una consulta en Expresión JSONPath. Las coincidencias se actualizan mientras escribes.
  3. Elige qué Mostrar: valores, rutas o pares ruta/valor.
  4. Copia o descarga el resultado. Si la consulta tiene un error de sintaxis, se indica el carácter donde falló el análisis.

Chuleta de sintaxis

ExpresiónSignificado
$La raíz del documento
.name o ['name']Un miembro de un objeto
[0], [-1]Un elemento de array (los negativos cuentan desde el final)
[1:3], [::2]Un slice: inicio, fin (excluido) y paso
*Todos los miembros o elementos
..namename a cualquier profundidad
[?@.price < 10]Hijos para los que el filtro es verdadero; @ es el elemento actual

Los filtros pueden combinar condiciones con &&, || y !, comparar con otras partes del documento mediante $ y llamar a funciones: length(@.tags) > 2, count(@.items[*]) == 0, match(@.code, '[A-Z]{3}') para que toda la cadena coincida con la expresión regular y search(@.title, 'Ring') para una coincidencia en cualquier parte.

Ejemplo

Con la librería de ejemplo, esta consulta selecciona los títulos de los libros que cuestan menos de 10:

$.store.book[?@.price < 10].title

y devuelve:

["Sayings of the Century", "Moby Dick"]

Cámbiala por $..book[?@.isbn].author para listar los autores de los libros con ISBN, o por $..price para reunir todos los precios de la tienda, incluido el de la bicicleta.

Preguntas frecuentes

› ¿Qué sintaxis de JSONPath se admite?

La sintaxis estándar de RFC 9535: nombres de miembro con punto y corchetes, comodines, índices de array (también negativos), slices, búsqueda descendente con .., filtros con comparaciones y && || !, y las funciones length(), count(), match(), search() y value(). El estilo antiguo ?(@.price < 10) también funciona, porque los paréntesis solo agrupan.

› ¿Por qué mi consulta devuelve un array vacío?

Un array vacío significa que la consulta es válida pero no coincidió nada. Revisa los nombres de miembro (distinguen mayúsculas y minúsculas) y si un valor es un array o un objeto. Con una consulta amplia como $..* y Mostrar en Rutas verás qué contiene el documento.

› ¿Puedo usar expresiones de script como [(@.length-1)]?

No. Las expresiones de script ejecutan código arbitrario y no forman parte del estándar. Usa un índice negativo: [-1] es el último elemento y [-2:] los dos últimos.

› ¿Se envía mi JSON a un servidor?

No. La consulta se analiza y evalúa en tu navegador con el propio código de la página; no se sube nada.