json yaml toml xml data-formats dev-tech

Formatos de Configuração e Troca de Dados: JSON, YAML, TOML e XML

Compare os prós e contras dos formatos de dados modernos. Aprenda quando usar JSON para APIs, YAML para configuração e por que XML e TOML ainda importam.

2026-04-11

O Guia Abrangente de Formatos de Configuração e Troca de Dados

No desenvolvimento de software moderno, a troca de dados e o gerenciamento de configuração são fundamentais. Esteja você definindo as configurações de um aplicativo, transmitindo dados entre um servidor e um cliente ou armazenando informações estruturadas, escolher o formato correto é crucial para o desempenho, a legibilidade e a interoperabilidade. Este guia abrange os formatos mais populares usados hoje.

1. Os Pesos Pesados: Web e Propósito Geral

JSON (JavaScript Object Notation)

O JSON é o rei indiscutível da troca de dados na web. É leve, fácil de ler e escrever para humanos e fácil de analisar e gerar para máquinas.

  • Melhor para: APIs web, backends de aplicativos móveis e arquivos de configuração simples.
  • Prós: Suporte universal, análise rápida, compacto.
  • Contras: Sem comentários, sintaxe estrita, tipos de dados limitados.

YAML (YAML Ain't Markup Language)

O YAML é um padrão de serialização de dados amigável ao ser humano. É frequentemente usado para arquivos de configuração onde a legibilidade é uma prioridade.

  • Melhor para: Pipelines de CI/CD (GitHub Actions, GitLab CI), manifestos do Kubernetes e configurações complexas.
  • Prós: Suporta comentários, muito legível, suporta estruturas complexas.
  • Contras: Sensível à indentação, pode ser lento para analisar, o "problema da Noruega" (e outros casos isolados).

XML (eXtensible Markup Language)

Antes do JSON, o XML era o padrão. Ele usa tags para definir a estrutura e é altamente extensível.

  • Melhor para: APIs SOAP, armazenamento de documentos (Word, manifestos do Android) e protocolos padrão da indústria.
  • Prós: Validação de esquema forte (XSD), suporta metadados, bem estabelecido.
  • Contras: Verboso, difícil de ler, maior sobrecarga de análise.

2. Formatos Especializados e Modernos

TOML (Tom's Obvious, Minimal Language)

O TOML visa ser um formato de arquivo de configuração minimalista que seja fácil de ler devido à semântica óbvia. É cada vez mais popular nos ecossistemas Rust e Python.

  • Melhor para: Configurações de aplicativos (Cargo.toml, pyproject.toml).
  • Prós: Mapeia diretamente para tabelas hash, ótimo equilíbrio entre JSON e YAML.

HCL (HashiCorp Configuration Language)

O HCL foi projetado especificamente para ferramentas DevOps. É a linguagem por trás do Terraform e outros produtos da HashiCorp.

  • Melhor para: Infraestrutura como Código (IaC).
  • Prós: Altamente legível, otimizado para definição de infraestrutura.

NDJSON (Newline Delimited JSON)

O NDJSON é um formato para armazenar ou transmitir dados estruturados onde cada linha é um objeto JSON válido.

  • Melhor para: Arquivos de log, streaming de dados e processamento de grandes conjuntos de dados.

3. Formatos Tabulares e Legados

CSV (Comma-Separated Values) & TSV (Tab-Separated Values)

Estes são os formatos mais simples para dados tabulares.

  • Melhor para: Planilhas, exportações de banco de dados e migrações de dados simples.
  • Contras: Sem padrão para escape, sem suporte para dados aninhados.

INI, Properties e Plist

  • INI: Pares chave-valor simples usados no Windows e em muitos aplicativos legados.
  • Properties: O formato de configuração padrão para aplicativos Java.
  • Plist (Property List): O formato de configuração padrão para aplicativos macOS e iOS.

Conclusão: Qual você deve escolher?

  • Escolha JSON para APIs web e troca de dados em geral.
  • Escolha YAML para configurações complexas que precisam de comentários.
  • Escolha TOML para configurações de aplicativos claras e simples.
  • Escolha CSV para dados tabulares simples destinados a planilhas.
  • Escolha XML apenas quando precisar de validação de esquema estrita ou estiver trabalhando com sistemas legados.

A compreensão desses formatos permite que você crie sistemas mais robustos e fáceis de manter. A maioria das ferramentas modernas fornece conversores entre esses formatos, mas começar com o correto economizará tempo e esforço significativos a longo prazo.