jq Playground
Pega JSON, escribe un filtro jq y ve el resultado al instante. Ejecuta el jq real compilado a WebAssembly, por completo en tu navegador.
Tu JSON se procesa localmente por jq ejecutándose como WebAssembly en tu navegador y nunca se sube, pero evita pegar secretos o datos de producción en cualquier herramienta.
¿Necesitas un JSONPath en lugar de jq? Prueba el Evaluador de JSONPath.
Acerca de jq Playground
Este jq playground te permite ejecutar filtros jq contra JSON sin instalar nada. Pega un documento JSON, escribe una expresión como .users | map(.name), .[] | select(.active) o group_by(.type), y el resultado aparece mientras escribes. Es el jq real 1.8.2 compilado a WebAssembly, así que los mismos filtros, funciones y sintaxis de tubería que usas en la línea de comandos funcionan aquí, incluidos map, select, sort_by, group_by, to_entries e interpolación de cadenas. Activa la salida en crudo (-r) para quitar las comillas de los resultados de cadena, o la salida compacta (-c) para poner cada valor en una sola línea. Los errores de compilación y de ejecución de jq se muestran para que puedas corregir un filtro rápidamente. Como jq se ejecuta como WebAssembly dentro de la página, el JSON que pegas se procesa localmente en tu dispositivo y nunca se sube a un servidor.
Características
- Ejecuta el jq real 1.8.2 compilado a WebAssembly, no una reimplementación parcial
- Resultados en vivo con un cambio con rebote, más un botón Ejecutar y Cmd/Ctrl+Enter
- Conmutador de salida en crudo (-r) para emitir cadenas sin comillas
- Conmutador de salida compacta (-c) para un valor por línea
- Errores de compilación y de ejecución de jq claros, mostrados desde stderr
- Filtros de ejemplo en los que se puede hacer clic (map, select, group_by, length, sort) que llenan la consulta
- Copia la salida con un clic
- El WASM se carga solo cuando ejecutas un filtro por primera vez, luego se mantiene caliente
Cómo usar jq Playground
- Pega o escribe tu JSON en el cuadro JSON.
- Escribe un filtro jq en el cuadro de filtro, por ejemplo .users | map(.name).
- Observa la salida actualizarse, o presiona Ejecutar / Cmd+Enter para evaluar de inmediato.
- Activa el modo crudo (-r) o compacto (-c) si necesitas un formato distinto.
- Haz clic en Copiar para tomar el resultado.
Ejemplo
Entrada
{
"users": [
{ "name": "Ada", "active": true },
{ "name": "Linus", "active": false }
]
}
Salida
[
"Ada"
]
El filtro .users | map(select(.active)) | map(.name) conserva solo los usuarios activos y devuelve sus nombres.
Errores comunes y solución de problemas
- jq reporta un error de sintaxis como "Unexpected end of input" o "unexpected token". — Revisa el filtro en busca de un corchete o tubería desbalanceado, por ejemplo .[ debería ser .[] o .[0]; jq analiza toda la expresión antes de ejecutarla.
- "Cannot iterate over null" o "Cannot index ... with ...". — La ruta no existe en tus datos. Usa acceso opcional como .users[]? o .field // empty, y confirma que los nombres de clave coincidan con tu JSON.
- La salida de cadena todavía tiene comillas alrededor. — Eso es salida JSON normal. Activa la salida en crudo (-r) para emitir la cadena sin comillas, que es lo que normalmente quieres al canalizar a un shell.
- La salida está vacía aunque el filtro parece correcto. — Tu filtro puede no haber producido valores (por ejemplo un select que no coincidió con nada). Prueba primero el filtro de identidad . para confirmar que el JSON se analiza, luego acota.
Preguntas frecuentes
- ¿Esto ejecuta el jq real?
- Sí. Ejecuta jq compilado a WebAssembly, así que es el motor jq real, no una reimplementación en JavaScript. Los filtros, las funciones integradas y la semántica de tubería coinciden con el jq que ejecutas en una terminal.
- ¿Qué versión de jq es compatible?
- jq 1.8.2, vía la compilación jq-wasm. Las funciones y la sintaxis disponibles en jq 1.8 (como group_by, to_entries, ltrimstr e interpolación de cadenas con \(...)) funcionan aquí.
- ¿Qué hacen los conmutadores de crudo (-r) y compacto (-c)?
- La salida en crudo (-r) imprime los resultados de cadena sin las comillas alrededor, igual que el flag -r de jq. La salida compacta (-c) imprime cada valor JSON en una sola línea en lugar de embellecerlo, igual que el flag -c de jq.
- ¿Se sube mi JSON a algún lugar?
- No. jq se ejecuta como WebAssembly dentro de esta página, así que el JSON que pegas y el filtro que escribes se evalúan localmente en tu dispositivo y no se envían a un servidor.
- ¿Por qué la primera ejecución es un poco más lenta?
- El módulo WebAssembly de jq se descarga e inicializa la primera vez que ejecutas un filtro, por eso ves un breve estado de carga. Después de eso se mantiene en memoria y las ejecuciones posteriores son rápidas.
- ¿Puedo ejecutar filtros con select, map y group_by?
- Sí. Expresiones como .[] | select(.active), .users | map(.name) y group_by(.type) funcionan todas, junto con el resto de las funciones de filtrado, transformación y agregación de jq.
Herramientas relacionadas
- Formateador de JSON — Embellece, minimiza y valida JSON con la ubicación de los errores.
- Evaluador de JSONPath — Prueba expresiones JSONPath contra tu JSON y ve las coincidencias en vivo.
- Visor de JSON — Visor de texto y árbol plegable con expandir/contraer y rutas de nodos.
- JSON Flatten / Unflatten — Aplana JSON anidado a claves con notación de puntos, o vuelve a anidarlo.
- JSON Diff — Compara dos documentos JSON con un diff estructural por rutas.
- YAML ↔ JSON — Convierte YAML a JSON y de vuelta.
Todas las herramientas de ArrayKit