Evaluador de JSONPath y jq
Encontrar un campo enterrado en lo hondo de un JSON largo suele costar más de lo que debería. Esta herramienta reúne en una sola página los dos lenguajes de consulta que los desarrolladores usan a diario: JSONPath para seleccionar, extrayendo justo los nodos que quieres con una ruta como $.store.book[*].author, y jq para transformar, filtrando, mapeando y agregando en tuberías casi programáticas. Pega el JSON a la izquierda, escribe una expresión en el prompt y el resultado se actualiza a la derecha en cuanto tecleas, con un recuento en vivo de cuántos valores coincidieron. JSONPath es el modo por defecto y no descarga nada, así que está listo al instante; jq solo obtiene su motor wasm la primera vez que cambias a él. Todo se ejecuta localmente en tu navegador, así que nada de lo que pegas sale de la pestaña.
- Dos motores en una página: JSONPath selecciona nodos con precisión mientras jq filtra, mapea y agrega, cubriendo desde tomar un solo campo hasta reestructurar todo el documento
- Evalúa mientras escribes y se actualiza al instante de editar el JSON o la expresión, con un recuento claro que distingue un cero real de una consulta mal formada
- Informa los errores de análisis del JSON y los de sintaxis de la consulta por separado, cada uno anclado a la entrada o a la expresión, sin emitir en silencio una salida vacía o parcial
- JSONPath es instantáneo y sin descarga, y el motor jq se obtiene solo al cambiar a él y luego se guarda en caché, todo en tu navegador y sin enviar nada fuera de tu equipo
Chuleta de sintaxis de JSONPath y jq
¿No conoces ninguna de las dos sintaxis? No pasa nada. Las dos tablas de abajo listan los símbolos y funciones que más usarás, cada uno con lo que hace y un ejemplo que puedes adaptar a tus propios campos. Cambia los nombres de campo por los de tus datos y estarás consultando en minutos.
Sintaxis habitual de JSONPath
$ $ @ @.price .name $.store .. $..author * $.store.* [n] $..book[0] [a:b] $..book[0:2] [?(expr)] $..book[?(@.price < 10)] ['a','b'] $..book[0]['title','price'] Sintaxis habitual de jq
. . .foo .store .a.b .store.bicycle.color .[] .store.book[] | .store.book[] | .title select(cond) .store.book[] | select(.price < 10) map(f) .store.book | map(.price) add / length [.store.book[].price] | add sort_by(f) .store.book | sort_by(.price) Resumen
Una herramienta de consulta solo vale la pena si te deja ver el resultado con claridad, y el error con la misma claridad. Esta se construye en torno a ambas cosas: salida instantánea, un recuento de coincidencias fiable y errores que separan un problema de entrada de uno de expresión.
- 01
Dos motores, cada uno en su fuerte
JSONPath destaca en seleccionar valores por ruta, con una sintaxis concisa que se aprende rápido. jq es un procesador JSON completo que filtra, mapea, agrega y reestructura. Cambias entre ambos en una página, así que tomar un campo y ejecutar una transformación compleja nunca implica cambiar de herramienta.
- 02
Evalúa mientras escribes
No hay ningún botón de ejecutar. Ya edites el JSON o la expresión, el resultado se actualiza tras una breve pausa, así que escribes y lees a la vez y exploras datos desconocidos mucho más rápido.
- 03
Un recuento de coincidencias fiable
Cada consulta muestra cuántos valores coincidieron, así ves de un vistazo si el resultado es uno, varios o ninguno. Un resultado vacío dice Sin coincidencias con claridad, en lugar de dejar un hueco que tengas que interpretar.
- 04
Informe de errores por capas
Cuando el propio JSON no se analiza, el error se ancla al panel de entrada; cuando la expresión es incorrecta, se ancla a la barra de consulta con el mensaje del propio motor. Se muestran por separado para que sepas al instante qué lado corregir.
- 05
Con sangría o compacto a demanda
Lee el resultado con sangría en varias líneas para inspeccionarlo capa a capa, o contráelo en líneas simples para pegarlo directamente en el código o en un comando. Un interruptor alterna entre ambos.
- 06
Reutiliza y exporta en un clic
Un documento de librería canónico y un conjunto de expresiones de ejemplo, de simples a avanzadas, están a un clic. Copia el resultado o descárgalo como archivo .json para llevarlo al siguiente paso.
Cómo usarla
Pasa de un documento JSON desconocido a justo la parte que necesitas en unos pasos, con el resultado y el recuento de coincidencias siempre a la vista.
- 01
Pega tu JSON en el panel de entrada de la izquierda, o pulsa Ejemplo para cargar un documento de librería listo para practicar.
- 02
Elige el lenguaje de consulta abajo: JSONPath para seleccionar valores, o jq cuando necesites filtrar, calcular o reestructurar.
- 03
Escribe una expresión en la barra de consulta, o pulsa una de las expresiones de ejemplo de abajo para aplicarla, y el resultado se actualiza a la derecha con el recuento.
- 04
Usa Con sangría/Compacto para ajustar la forma y luego copia el resultado o descárgalo como archivo .json para llevarlo a tu código, script o notas.
Detalles
Los detalles que hacen el resultado fiable y cómodo de usar.
- JSONPath funciona con la madura biblioteca jsonpath-plus, con soporte completo de descenso recursivo, comodines, expresiones de filtro y cortes de arreglos.
- jq es el jq oficial compilado a WebAssembly, así que la sintaxis coincide exactamente con la línea de comandos: lo que escribes en una terminal se ejecuta aquí sin cambios.
- Las consultas se ejecutan mientras escribes, sin botón de ejecutar ni retraso entre cambiar una expresión y ver el nuevo resultado.
- Los errores de análisis del JSON y los de sintaxis de la consulta se muestran en el sitio con sus mensajes originales, en lugar de producir en silencio una salida vacía o rota.
- Todo se ejecuta localmente en tu navegador. El JSON que pegas, incluidas respuestas de API sensibles, nunca se sube ni se registra, y desaparece al cerrar la pestaña.
Casos de uso
Dónde una sola consulta ahorra mucho rebuscar.
-
Depurar respuestas de API
Un endpoint devuelve un muro de JSON anidado y quieres confirmar dónde vive un campo y si su valor es correcto. Una ruta lo extrae, sin plegar y desplegar niveles en un editor.
-
Calcular sobre los datos
Cuando necesitas el total de un lote de precios, una lista de autores sin duplicados o la longitud de un arreglo, una sola tubería jq lo calcula mucho más rápido que escribir un script desechable.
-
Validar y depurar expresiones
Antes de que una expresión JSONPath o jq llegue al código, a un script de CI o a una tubería de logs, pruébala aquí con datos reales para confirmar que coincide exactamente con los nodos que pretendes.
-
Entender una estructura desconocida
Ante un JSON sin documentar, desciende con $.. o barre un nivel con un comodín, observando el resultado mientras escribes, para mapear rápido sus niveles y campos.
Ver también
¿Solo quieres ordenar o validar el propio JSON? Usa elFormateador de JSON , y para comparar dos documentos JSON, prueba elDiferencias de JSON .
JSONPath y jq, y para qué sirve cada uno
Ambos trabajan sobre JSON, pero parten de lugares distintos. JSONPath es una consulta: solo extrae los nodos que pides. jq es un procesador: puede seguir trabajando sobre ellos una vez extraídos. Entiende esa línea y siempre sabrás cuál elegir.
-
JSONPath: seleccionar por ruta
Inspirado en XPath, describe el nodo que quieres con una sola ruta. $ es la raíz y . baja un nivel, y lo que sale es siempre un valor ya presente en el documento, nunca reescrito. Para extraer datos de un documento, es la vía más directa.
-
Los símbolos clave de JSONPath
$ es el nodo raíz, .. desciende de forma recursiva a cualquier profundidad, * es un comodín que coincide con todo en un nivel, [?(@.price < 10)] es una expresión de filtro y los cortes como [-1:] toman por posición. Unos pocos símbolos combinados cubren la gran mayoría de las selecciones.
-
jq: JSON como un flujo a procesar
jq es un lenguaje pequeño pero completo. Trata el JSON como valores que fluyen por una tubería, |, donde cada filtro transforma la salida del anterior. Puede seleccionar, filtrar y reestructurar, y también puede calcular. Cuando quieres hacer algo con los datos después de seleccionarlos, jq es la respuesta.
-
El jq que más usarás
map transforma cada elemento de un arreglo, select conserva elementos según una condición, add suma, unique elimina duplicados, length cuenta y max_by halla un extremo. Encadenados con tuberías, expresan totales, reestructuraciones y resúmenes que JSONPath no puede.
-
Uno selecciona, el otro calcula
En pocas palabras: si solo quieres encontrar un valor, JSONPath es más corto y directo; si quieres filtrar, calcular o reestructurar tras encontrarlo, déjalo en manos de jq. Por eso esta herramienta pone a ambos uno al lado del otro.
-
Por qué el resultado es un conjunto de valores
La salida de ambos motores es por naturaleza un conjunto de valores: cada nodo que JSONPath coincide y cada resultado que jq emite. Por eso la herramienta te dice cuántos hay y los lista juntos, en la forma con sangría o compacta que elijas.
Buenas prácticas
Hábitos que mantienen las consultas precisas y eficientes.
- Decide primero si vas a seleccionar o a transformar: usa JSONPath para extraer nodos existentes y recurre a jq solo cuando necesites filtrar, calcular o reestructurar. No compliques una tarea simple con la herramienta equivocada.
- Apóyate en el descenso recursivo. Tanto .. de JSONPath como .. de jq buscan a través de niveles, lo cual es más robusto que fijar una ruta nivel por nivel cuando la estructura es incierta.
- Usa el recuento de coincidencias como verificación. Tras escribir una expresión, mira cuántas coincidieron; un número que no cuadra con lo esperado suele significar que la ruta o la condición está algo desviada.
- Contrae el resultado a compacto antes de pegarlo en el código o en una línea de comandos, y reserva la vista con sangría para cuando necesites leer y verificar capa a capa.
- Valida aquí antes de que la expresión llegue al código o a un script. La herramienta usa el jsonpath-plus estándar y el jq oficial, así que el comportamiento coincide con producción.
Limitaciones
Lo que hace esta herramienta y lo que deja a otros pasos.
- Consulta un único documento JSON. No fusiona varios archivos ni obtiene datos externos referenciados por una URL.
- Se centra en consultar y transformar, no en editar JSON por completo; para reescrituras estructurales grandes o formateo, usa el formateador dedicado.
- La implementación de JSONPath sigue la sintaxis de jsonpath-plus, y algunas formas extendidas pueden diferir entre implementaciones; aquí el resultado de la herramienta es el de referencia.
- El JSON que no se puede analizar se informa en lugar de repararse, así que una entrada muy dañada no producirá un resultado a medias.
Preguntas frecuentes
Preguntas frecuentes sobre JSONPath, jq y cómo usar esta herramienta.
¿Cuál es la diferencia entre JSONPath y jq, y cuál debo usar?
En una frase: JSONPath selecciona, jq procesa. Si solo quieres extraer un nodo de un documento JSON, la sintaxis de ruta de JSONPath es la vía más corta y directa, por ejemplo $.store.book[*].author. Si además necesitas filtrar, sumar, eliminar duplicados o reestructurar tras extraerlo, necesitas jq, que es un lenguaje completo de procesamiento de JSON. La herramienta pone ambos en una página para que cambies según lo pida la tarea.
¿Puedo usar directamente mis expresiones de jq de la línea de comandos?
Sí. El jq de aquí es el jq oficial compilado a WebAssembly, así que la sintaxis es idéntica a la línea de comandos: tuberías, funciones integradas, select, map, reduce y demás funcionan igual. Lo que escribes en una terminal se ejecuta aquí sin cambios.
¿Por qué hay un paso de carga al cambiar a jq?
JSONPath es pequeño y síncrono, así que es el motor por defecto y está listo en cuanto se abre la página. jq es un motor WebAssembly de alrededor de 1MB, que se obtiene solo la primera vez que cambias a jq y luego se guarda en caché durante el resto de tu visita. Así, quienes solo usan JSONPath nunca pagan el coste de cargar jq.
¿Qué significa el recuento de "N coincidencias"?
Es cuántos valores coincidió o produjo la expresión actual. JSONPath reúne en un conjunto cada nodo que encaja con la ruta, y jq emite una serie de valores de resultado; el número es simplemente su cantidad. Cuando es cero muestra Sin coincidencias, lo que te ayuda a distinguir una ausencia real de datos de un error en la expresión.
¿Se sube mi JSON a algún lado?
No. Todo el análisis y la consulta ocurren en tu navegador. El JSON que pegas y el resultado nunca se transmiten ni se almacenan, y desaparecen al cerrar la pestaña, así que hasta las respuestas de API sensibles son seguras de depurar aquí.
¿Por qué se mantiene el resultado anterior cuando mi expresión tiene un error?
Es deliberado. Cuando una consulta tiene un error de sintaxis, la herramienta muestra el mensaje original del motor en el área de resultado en lugar de borrar tu último resultado válido. Así la vista no parpadea mientras haces ediciones sucesivas, y el resultado vuelve en cuanto la expresión es válida de nuevo.
¿Qué pasa cuando el JSON no es válido?
Si el JSON de la izquierda no se puede analizar, la herramienta muestra el error de análisis concreto bajo el panel de entrada y no ejecuta la consulta, porque no tiene sentido buscar coincidencias en datos que no se pueden analizar. Corrige el JSON como se indica y la consulta se reanuda de inmediato.
Herramientas relacionadas
Sigue con el resto del conjunto de herramientas de datos y formatos.