Watch at EaseHistorias. Respuestas. Perspectiva.

Tecnología · GUÍA PRÁCTICA

¿jq dice cannot index string with string? Prueba la forma JSON antes de cambiar el filtro

Conserva el modo de entrada y el tipo en cada ruta; protege solo el límite mixto probado y conserva los rechazos.

es jq JSON path type diagram
Ilustración editorial original: prove the value type before indexing. Watch at Ease

Una clave de objeto en jq falla si recibe string, array, number o boolean. Un generador puede imprimir primero un valor válido y fallar después con otro tipo, dejando salida parcial y un estado distinto de cero.

Conserva bytes, modo de entrada y filtro exacto. Construye un registro ruta-tipo; falla ante deriva de esquema o protege solo una colección legítimamente mixta y conserva rechazos.

Congela bytes, modo y filtro

Guarda input, jq --version, filtro, quoting, comando previo y presencia de -R, -s o -n. -R crea strings y -s crea un array.

Valida el archivo JSON y conserva un registro válido y uno fallido. Imprimir un valor antes de exit 5 sigue siendo un fallo.

Crea un registro ruta-tipo

Ejecuta type en la raíz y tras cada paso. RFC 8259 separa objects y arrays, y permite elementos de tipos distintos.

Registra ruta, tipo observado y cantidad. .[] sobre un object emite todos sus valores y una clave posterior puede recibir un string.

Separa tres fallos de forma

Separa recorrido raíz incorrecto, colección mixta y objeto codificado como string. El último exige decidir procedencia antes de parsear otra vez.

No trates echo como bytes autoritativos: el quoting puede cambiarlos. Lee el archivo guardado y compáralo con el schema del productor.

Protege solo el límite probado

Si la colección es legítimamente mixta, selecciona type==object antes de leer claves y guarda los demás con ruta y tipo.

try, catch u optional amplios pueden ocultar errores con empty. Úsalos solo si el contrato acepta el dato y aún cuentas rechazos.

Exige pruebas de salida y exit

Prueba object, array, string, boolean, null, clave ausente y array mixto. Reconcilia aceptados y rechazados con la entrada y comprueba exit.

La salida exige modo documentado, tipos estables, cantidad esperada, cero rechazos sin explicar y fallo no cero si un object requerido cambia a scalar.

es jq narrow guard and reject ledger diagram
Ilustración editorial original: guard narrowly and keep rejected records visible. Watch at Ease