Acerca de esta herramienta
JSONPath es la forma en que la mayoría de los frameworks de pruebas de API extraen valores de una respuesta: el JsonPath de REST Assured, los scripts de Postman, Karate y muchas librerías de assertions usan las mismas ideas. Escribir la expresión contra una respuesta real te ahorra una ronda de ejecuciones fallidas. Este probador usa jsonpath-plus con la evaluación de scripts desactivada y evalúa expresiones de filtro como [?(@.price < 10)] con un pequeño intérprete integrado, así que nada de lo que pegues se ejecuta nunca como código. Cada coincidencia se muestra con su ruta normalizada, que te dice exactamente de dónde viene el valor.
Cómo usarla
- Pega una respuesta JSON en el panel izquierdo o pulsa “Load sample” para cargar el clásico documento de la librería.
- Escribe una expresión que empiece por $; los resultados se actualizan mientras escribes.
- Elige si mostrar valores, rutas o ambos, y copia el resultado.
- Usa los botones “Try” de la hoja de referencia para ver en acción el descenso recursivo, los slices, las uniones y los filtros.
Preguntas frecuentes: Probador de JSONPath
¿Por qué mi expresión funciona aquí pero no en REST Assured?
REST Assured usa GPath de Groovy, no el JSONPath de Goessner. La ruta «store.book.findAll { it.price < 10 }.title» en GPath equivale aquí a «$.store.book[?(@.price < 10)].title». Las rutas simples con puntos son iguales en ambos, pero los filtros y comodines usan sintaxis distinta.
¿Qué sintaxis de filtro se admite?
Los filtros pueden referirse al elemento actual (@) o a la raíz ($), comparar con == != < <= > >=, combinarse con && || y !, y usar cadenas, números, true, false y null. Las expresiones de script como [(@.length-1)] y las llamadas a métodos de JavaScript no se ejecutan a propósito; usa el slice [-1:] para el último elemento.
¿Por qué no obtengo coincidencias aunque la clave existe?
Las causas habituales son diferencias de mayúsculas (userId frente a userid), olvidar [*] cuando el valor está dentro de un array, o una clave con guion o espacio que necesita notación de corchetes, como $['first-name'].