Lição 11

Gerar texto JSON a partir de valores

Serialização, ordem de chaves e saída estável para testes e APIs.

Geração (serialização) percorre seus valores em memória e escreve texto JSON — para respostas HTTP, export de arquivos ou fixtures de teste. É o inverso do parse, com suas próprias escolhas de design.

Comportamento padrão varia

A maioria dos serializers:

  • Omite propriedades undefined (JavaScript) ou exige tratamento explícito de null
  • Escapa strings automaticamente
  • Escreve números em forma decimal

Exemplo conceitual:

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

a partir de um objeto com campos status e count.

Ordem de chaves e saída estável

Ordem de chaves de objeto não é semanticamente significativa em JSON, mas a ordem de bytes serializada é significativa para:

  • Diffs no Git e snapshot tests
  • Assinaturas criptográficas sobre bytes brutos
  • Chaves de cache construídas a partir de JSON canônico

Equipes às vezes ordenam chaves alfabeticamente antes de gerar texto para que dois objetos logicamente iguais produzam strings idênticas.

Geração pretty vs compacta

ModoUse quando
Pretty (indentado)Revisão humana, docs, debug
CompactoTransferência na rede, tamanho de storage importa

Os mesmos dados podem ser válidos em ambas as formas — escolha pelo público, não pela correção.

Pensamento de round-trip

Fluxo ideal: valores → texto → parse → valores iguais. Números de ponto flutuante, inteiros grandes ou tipos customizados (datas, BigInt) podem não fazer round-trip perfeito a menos que você defina convenções (strings ISO de data, decimais codificados como string).

Documente essas convenções em specs de API para clientes e servidores concordarem.

Voltar à visão geral do curso