Herramientas JSON

jq playgrounddel filtro al comando que necesitas

Ejecuta jq sobre JSON o texto, elige cómo leer la entrada y revisa la salida exacta antes de llevar el programa a tu shell.

jq playground

Entrada JSON / texto

Programa jq

Resultado

Vista previa en bloques de 5.000 caracteres. Copia y descarga incluyen el resultado completo.

La entrada y el programa permanecen en la memoria del navegador, sin guardar historial.

Permitidas: -c -r -j -S -a -e, opciones cortas combinadas y alias largos. Elija -s/-R/-n mediante el modo de entrada.

jq 1.8.2 · WebAssembly local · ejecución manual

Resultado desactualizado; copiar y descargar están desactivados.

Solo para shell POSIX. Guarde primero la entrada como input.json; el comando copiado no incluye sus datos.

Una respuesta de API suele traer más campos de los que necesita un script. Con jq playground puedes filtrar JSON, comprobar condiciones y transformar JSON en objetos más pequeños sin perder de vista los datos originales.

Al probar filtros jq conviene distinguir tres resultados: varios valores independientes, un único array y ninguna salida. El visor conserva esa diferencia para que puedas preparar lo que espera el siguiente comando.

¿Para qué sirve este jq playground?

Ver cada coincidencia por separado

La expresión .people[] | select(.age >= 18) | .name emite un nombre por cada adulto. Cada cadena mantiene su separación y salto de línea; así puedes comprobar si el proceso siguiente recibirá varios valores o un array.

Tres registros atraviesan un filtro y dos coincidencias salen como resultados independientes.

Agrupar la entrada cuando hace falta

En jq playground, el modo -s reúne todos los valores JSON de entrada en un array antes de ejecutar el programa. Los corchetes alrededor de un filtro hacen otra cosa: reúnen sus resultados para cada valor de entrada actual.

Tres objetos JSON separados quedan reunidos dentro de un único array.

Decide qué debe leer el programa

01

Elige valores, líneas o texto completo

El modo JSON admite valores consecutivos. -s los agrupa; -R lee una cadena por línea y -Rs lee todo el texto como una cadena. Con -n el programa empieza con null, pero input e inputs todavía pueden leer los datos proporcionados.

02

Revisa los cambios antes de aplicarlos

Importar un archivo, cargar un ejemplo o borrar muestra primero una vista previa. Aplicar sustituye los datos y ajustes indicados; deshacer recupera también el resultado anterior. Ejecuta con el botón o Ctrl/Cmd+Enter. Cualquier edición desactiva la exportación hasta volver a ejecutar.

03

Comprueba el código de salida

Un código distinto de cero desactiva todas las exportaciones, incluso si -e solo indica false, null o ausencia de resultados. Si procede, quita -e y ejecuta otra vez. Para usar el comando POSIX, guarda la misma entrada en input.json.

Selección, transformación y salida fiel

Condiciones y objetos nuevos

select conserva los registros que cumplen una condición; map devuelve un array con los elementos transformados. El ejemplo compara edades numéricas y crea un campo booleano: una cadena con dígitos sigue siendo un tipo JSON distinto.

Sintaxis real de jq

El motor jq 1.8.2 en WebAssembly ejecuta tuberías, reduce, def, recursión, try/catch y expresiones regulares. Puedes probar programas compuestos, aunque la página no ofrece módulos de archivos ni argumentos CLI para archivos adicionales.

Control del formato

-r entrega cadenas sin comillas JSON; -j también omite separadores. -c compacta, -S ordena claves y -a usa escapes ASCII. Se aceptan combinaciones cortas y sus alias largos; las opciones ajenas a la lista se rechazan.

stdout y diagnóstico separados

La salida exportada conserva espacios, saltos de línea, BOM inicial y caracteres NUL. Los mensajes de debug y stderr aparecen aparte. La vista crece en bloques de 5.000 caracteres y una exportación habilitada incluye el resultado completo.

Límites y comportamiento del motor

Tamaño y tiempo
La entrada y los archivos admiten hasta 500.000 bytes UTF-8; el programa, 8.000 bytes. Las opciones se limitan a 256 caracteres. Hay 15 segundos para cargar el motor y 3 para ejecutar después de cargarlo. Detener termina el Worker.
Memoria y salida
La memoria lineal WASM tiene un máximo de 256 MiB, que no es la memoria total del navegador. stdout y stderr comparten un límite de 2 MiB. Si se agota el tiempo, la pila, la memoria o la salida permitida, no se puede exportar un resultado parcial.
Números y claves repetidas
La entrada llega a jq sin pasar por JSON.parse de JavaScript. Un literal numérico grande sin modificar puede conservar su escritura decimal; las operaciones usan coma flotante y pueden redondear. En claves repetidas prevalece la última. Usa cadenas para identificadores que deban conservarse exactamente.
Un código no identifica por sí solo la causa
Con -e, false o null suelen devolver 1 y la ausencia de salida, 4; halt_error también puede devolver esos códigos. Cualquier salida distinta de cero bloquea todas las exportaciones. stdout y los diagnósticos siguen visibles, aunque la vista puede estar incompleta.
Alcance del entorno
No hay editor --arg, --stream, --seq, carga de módulos, acceso al sistema de archivos, lectura de URL ni enlaces con datos. El comando usa comillas POSIX, no las de PowerShell o cmd. Las funciones que dependen del entorno ven el entorno WASM, no tu equipo.

Preguntas sobre jq playground

¿Cómo filtrar un array de objetos JSON con jq?

En el ejemplo, usa .people[] | select(.age >= 18) | .name. El iterador [] emite cada objeto, select comprueba la condición y .name extrae el campo. Encierra todo entre corchetes si necesitas un único array.

¿Cómo quitar las comillas dobles de la salida de jq para procesar archivos JSON en Bash?

Añade -r en las opciones de salida. Las cadenas salen sin comillas JSON y conservan sus espacios internos; los objetos y arrays siguen como JSON. Elige -j solo si también quieres quitar los separadores entre resultados.

¿Cómo obtener un array con los resultados de select en jq?

Usa [.people[] | select(.age >= 18)]. Los corchetes reúnen los valores emitidos por ese filtro. Si no hay coincidencias, obtendrás [] en vez de una salida vacía, una diferencia relevante para el siguiente comando.

¿Cómo reunir varios objetos JSON en un array?

Selecciona Agrupar JSON (-s) y ejecuta . para ver el array formado. Si las entradas ya son arrays y quieres concatenarlos, combina -s con add. Mezclar objetos es otro caso: debes decidir qué hacer con las claves repetidas.

¿Cómo convertir pares key = value a JSON?

Selecciona Líneas de texto (-R) y prueba split("=") | {(.[0]): .[1]} para líneas sencillas. Ajusta los espacios de claves y valores según el formato. Si un valor contiene otro signo igual, necesitarás una separación distinta; las reglas de escape dependen del archivo.

¿Alguna consulta produce un resultado incorrecto?

Empieza con pocos registros

Compara el ejemplo de varios resultados con map en jq playground y lleva el programa comprobado a tu script.