¿Qué es JSONPath y por qué necesito un probador?
Tienes un documento JSON. Puede ser una respuesta de API, un archivo de configuración, una línea de log, lo que sea. Dentro hay algún dato que quieres extraer: el correo del tercer usuario, todos los precios por debajo de 10 dólares, todas las URLs de imagen anidadas 4 niveles. Escribir un bucle JavaScript para eso vale, pero es lento y ruidoso. JSONPath es el atajo: un pequeño lenguaje de consulta hecho para JSON, modelado sobre XPath para XML. Una línea y obtienes los valores.
Este probador ejecuta tu expresión en vivo mientras escribes. Pega JSON a la izquierda, escribe un JSONPath como `$.store.book[*].title` a la derecha y ves los valores coincidentes también a la derecha. Nada sale de tu navegador: el JSON se queda en tu equipo, lo que importa cuando estás depurando una respuesta de producción con datos reales de usuarios.
La herramienta trae el ejemplo clásico de la librería de Goessner (el JSON que usan todos los tutoriales de JSONPath) para que la chuleta y los chips de ejemplos funcionen al instante. Pulsa un ejemplo para cargarlo, ajusta la expresión y ve qué cambia. Aprenderás la sintaxis más rápido jugando con una consulta que funciona que leyendo la documentación.
Cómo se usa
- Pega tu JSON en el textarea izquierdo. Pulsa Formatear para imprimirlo bonito (sangría de 4 espacios, sin ordenar nada, solo legible). Si el JSON está roto (coma que falta, llave sin cerrar), aparece una insignia roja JSON inválido sobre el editor: arréglalo y la insignia desaparece.
- Escribe una expresión JSONPath en la entrada de la derecha. El resultado se actualiza en cada tecla, no hay botón "ejecutar". Empieza con `$` (la raíz del documento) y baja con `.field` o `[index]`. Los chips de ejemplos de abajo son puntos de partida en los que se puede hacer clic.
- El panel Resultado muestra los valores coincidentes como JSON. El número de coincidencias está arriba a la derecha; una coincidencia vacía devuelve "sin coincidencias" en lugar de un array vacío, así sabes que la expresión se ejecutó sin error.
- Activa Mostrar rutas para cambiar la salida de valores a rutas JSON (como `$.store.book[0].title`). Útil cuando quieres saber dónde está algo en vez de qué es.
- Pulsa Copiar para poner el resultado en el portapapeles. Pulsa Cargar muestra en cualquier momento para resetear al documento de la librería. Pulsa Limpiar para borrar ambos paneles.
- Usa la chuleta del final: cada fila es clicable, el ejemplo se carga en el cuadro de consulta (y resetea el JSON de muestra) para que veas exactamente qué hace cada operador.
Cuándo te resulta útil
Seis situaciones concretas en las que JSONPath gana a escribir un bucle a medida:
- Depurar respuestas de API. Llamas a un endpoint, la respuesta son 80 KB de JSON anidado y solo necesitas los IDs de usuario de la segunda página de resultados. Escribes `$.data.users[*].id` y los tienes. Sin escribir un script, sin abrir la respuesta en un IDE, sin copiar y pegar fragmentos.
- Extraer campos de un archivo de configuración. Tienes un manifiesto de Kubernetes de 2000 líneas o un values.yaml de Helm (convertido a JSON) y quieres todas las imágenes de contenedor usadas en el clúster. `$..spec.containers[*].image` y listo. El descenso recursivo (`..`) ignora a qué profundidad estén anidados los contenedores.
- Filtrar por condición. Tienes un catálogo con 400 artículos y necesitas los que cuestan menos de 10 dólares. `$.products[?(@.price < 10)]` los devuelve todos: sin SQL, sin Excel, solo pegar y escribir. Combina con `&&` para varias condiciones: `[?(@.price < 10 && @.inStock)]`.
- Aprender la sintaxis antes de usarla en código. Muchas librerías aceptan JSONPath como entrada: alternativas a jq, scripts de test de Postman, paneles de Grafana, Azure Logic Apps, AWS Step Functions, rutas de Camel. Prueba aquí la expresión y luego pégala en la herramienta real con seguridad.
- Construir reglas de automatización. Conectas Zapier, n8n, Make o Pipedream: la mayoría tiene un paso de filtro "JSONPath". Esbozas el filtro aquí con el payload real del webhook y dejas caer la expresión funcionando en la regla.
- Exploración rápida de datos. Has exportado tus datos de algún sitio (Notion, Airtable, Stripe, GitHub API) como JSON y quieres responder una pregunta rápido. "¿Cuántas facturas superan los 500 € en este conjunto?". `$..invoices[?(@.amount > 500)]`, cuenta las coincidencias y listo. Más rápido que los trucos de hojas de cálculo.