Lección 11

Generar texto JSON desde valores

Serialización, orden de claves y mantener salida estable para tests y APIs.

La generación (serialización) recorre tus valores en memoria y escribe texto JSON — para respuestas HTTP, exportaciones de archivos o fixtures de test. Es lo inverso del parseo, con sus propias decisiones de diseño.

El comportamiento por defecto varía

La mayoría de serializadores:

  • Omiten propiedades undefined (JavaScript) o requieren manejo explícito de null
  • Escapan cadenas automáticamente
  • Escriben números en forma decimal

Ejemplo conceptual:

{"status": "ok", "count": 3}

desde un objeto con campos status y count.

Orden de claves y salida estable

El orden de claves en objetos no es semánticamente significativo en JSON, pero el orden de bytes serializado importa para:

  • Diffs de Git y snapshot tests
  • Firmas criptográficas sobre bytes crudos
  • Claves de caché construidas desde JSON canónico

A veces los equipos ordenan claves alfabéticamente antes de generar texto para que dos objetos lógicamente iguales produzcan cadenas idénticas.

Generación pretty frente a compacta

ModoUsar cuando
Pretty (indentado)Revisión humana, docs, depuración
CompactoTransferencia en red, importa el tamaño de almacenamiento

Los mismos datos pueden ser válidos en ambas formas — elige según la audiencia, no la corrección.

Pensamiento de ida y vuelta

Flujo ideal: valores → texto → parseo → valores iguales. Números de punto flotante, enteros grandes o tipos personalizados (fechas, BigInt) pueden no hacer round-trip perfecto salvo que definas convenciones (cadenas de fecha ISO, decimales codificados como string).

Documenta esas convenciones en especificaciones de API para que clientes y servidores coincidan.

Volver al resumen del curso