Laboratorio de jq
jq Playground
Ejecuta filtros de jq 1.7 sobre el JSON que pegues, dentro del navegador, con una chuleta y la línea de comandos equivalente.
Ejecuta filtros de jq contra un documento en el navegador: un intérprete real de la gramática de jq 1.7 en lugar de unas cuantas operaciones de cadenas, así que las tuberías, `reduce`, `def`, la desestructuración y los operadores de actualización se comportan como en la línea de comandos. El comando de shell equivalente se imprime bajo el filtro.
Filtro
jq '.orders[] | select(.status == "shipped") | {id, customer}' data.json
JSON de entrada
Suelta un archivo .json
Se lee solo en esta pestaña. No se sube nada.
1 salida
Salidas
1
Tiempo
<1 ms
Tipos
object
Un intérprete de la gramática de jq 1.7, escrito aquí. Admite rutas (.a[0].b, .., ?), |·,·//, aritmética, comparación, and/or/not, interpolación de cadenas, if, try, reduce, foreach, as (con desestructuración), def, actualizaciones como |=·+=, formatos como @base64·@csv, y las 180 funciones integradas de abajo. Las pruebas son los propios ejemplos del manual de jq.
No soportado: input·inputs (solo hay un documento), $ENV·env (vacío), label·break, --stream, los arrays anidados en @sh, los formatos distintos de ISO 8601 en strptime, el modo de flujo de getpath y los módulos (import). Las expresiones regulares corren en el motor del navegador y no en el Oniguruma de jq, así que \p{L} y los grupos con nombre funcionan, y puede haber diferencias sutiles alrededor del lookbehind.
Si lo único que quieres es una ruta, quizá sea más simple el Probador de JSONPath.
Cómo se usa
Pega el documento
Un valor JSON, o varios seguidos: la herramienta los lee como un flujo de entrada de jq, y el recuento se muestra en el título del panel.
Escribe el filtro, o toma uno de la fila de ejemplos
Los botones cubren las formas que aparecen: select, map, group_by, interpolación de cadenas, reduce y los operadores de actualización. Pasar el cursor por uno dice qué hace.
Ajusta los flags que usarías en la línea de comandos
`-c` para una línea por salida, `-S` para ordenar claves, `-r` para cadenas sin comillas, `-s` para engullir varias entradas en un solo arreglo. La línea de comandos del final se actualiza con ellos.
Copia el comando, no solo la salida
La línea `jq …` generada está correctamente entrecomillada para una shell POSIX, así que puede ir directamente a un script o a una tubería.
Preguntas frecuentes
¿Esto es jq de verdad?
Es un intérprete independiente de la gramática de jq, probado contra los ejemplos del propio manual de jq. Eso cubre el lenguaje y los builtins comunes; no es una compilación de jq en sí, así que cualquier cosa que dependa de los internos en C de jq será distinta.
¿Por qué `input` no funciona?
Porque aquí hay un documento, no un flujo del que un filtro pueda sacar más. `input`, `inputs`, `$ENV`, `env`, `label`/`break`, `--stream` y los módulos se listan todos como no admitidos en la página en lugar de fallar misteriosamente.
Mi expresión regular se comporta distinto que en jq.
jq usa Oniguruma; esto usa el motor del navegador. En la práctica `\p{L}` y los grupos con nombre funcionan en ambos, y las diferencias aparecen en torno al lookbehind y a unos pocos escapes de clases de caracteres. Si un patrón importa, pruébalo en la máquina que lo va a ejecutar.
Se detuvo en 5.000 salidas.
Un límite deliberado, junto con un límite de pasos. `..` sobre un documento grande produce una salida enorme, y un filtro con una recursión desbocada colgaría la pestaña de lo contrario. Acota el filtro, o ejecútalo en la línea de comandos donde puedes canalizar a `head`.
Puede recibir de
Conversor de JSON Lines
JSON Lines Converter
Convierte entre NDJSON y un arreglo JSON, y señala por número cada línea que no se analiza en lugar de detener la conversión.
Probador de JSONPath
JSONPath Tester
Ejecuta una expresión JSONPath sobre un documento y resalta los nodos que coinciden mientras escribes.
Formateador y validador de JSON
JSON Formatter & Validator
Indenta, minifica y valida JSON, señalando la línea y la columna exactas del error de sintaxis.
Formateador y validador de YAML
YAML Formatter & Validator
Reindenta el YAML de forma uniforme, lo valida y señala los tabuladores y las anclas que rompen los analizadores.
Después
Estas aceptan lo que produce esta herramienta, así que el resultado puede pasar directamente.
JSON a CSV y de vuelta
JSON ⇄ CSV
Aplana JSON anidado en columnas o reconstruye los objetos desde una tabla, con nombres de columna en notación de puntos.
Formateador y validador de JSON
JSON Formatter & Validator
Indenta, minifica y valida JSON, señalando la línea y la columna exactas del error de sintaxis.
Probador de JSONPath
JSONPath Tester
Ejecuta una expresión JSONPath sobre un documento y resalta los nodos que coinciden mientras escribes.
Conversor de JSON Lines
JSON Lines Converter
Convierte entre NDJSON y un arreglo JSON, y señala por número cada línea que no se analiza en lugar de detener la conversión.
Codificador y decodificador Base64
Base64 Encoder & Decoder
Codifica y decodifica Base64 y Base64URL, para texto o archivos, tratando UTF-8 correctamente.
curl a código
curl to Code
Convierte un comando curl en fetch, axios, requests de Python, Go, PHP o PowerShell.