JSON, YAML, CSV: Quando Usar Cada Um e Como Converter
Você baixa um conjunto de dados e ele está em CSV. Sua API retorna JSON. Seu arquivo de configuração está em YAML. Um colega envia um arquivo JSON e pede como planilha. Outro colega entrega uma configuração YAML e você precisa dela como JSON para uma ferramenta diferente.
A conversão de formatos de dados é uma daquelas tarefas que parecem triviais até você estar realmente fazendo. Entender quando usar qual formato, e como alternar entre eles, economiza tempo de verdade.
Os Três Formatos em Resumo
JSON (JavaScript Object Notation)
{
"name": "Alice",
"age": 30,
"skills": ["Python", "SQL", "Docker"],
"address": {
"city": "Berlin",
"country": "Germany"
}
}
O que é: Um formato de texto para dados estruturados que suporta objetos (pares chave-valor), arrays (listas ordenadas), strings, números, booleanos e null.
Pontos fortes: Legível por máquinas, amplamente suportado em todas as linguagens de programação, lida com dados aninhados naturalmente, sintaxe rígida evita ambiguidade.
Pontos fracos: Verboso (muitas chaves, colchetes e aspas), não tão legível para humanos quanto YAML, sem suporte para comentários.
YAML (YAML Ain't Markup Language)
name: Alice
age: 30
skills:
- Python
- SQL
- Docker
address:
city: Berlin
country: Germany
O que é: Um formato de serialização de dados amigável para humanos que usa indentação em vez de chaves e colchetes. É um superconjunto de JSON, o que significa que JSON válido também é YAML válido.
Pontos fortes: Extremamente legível, suporta comentários, menos poluição visual, ótimo para arquivos de configuração.
Pontos fracos: Sensível à indentação (fácil de quebrar com espaçamento errado), alguns comportamentos de parsing surpreendentes, mais lento para parsear do que JSON.
CSV (Comma-Separated Values)
name,age,city,country
Alice,30,Berlin,Germany
Bob,25,London,UK
Charlie,35,Paris,France
O que é: Um formato de texto plano onde cada linha é uma linha de dados e os valores dentro de uma linha são separados por vírgulas (ou às vezes ponto e vírgula ou tabulações).
Pontos fortes: Universal (toda planilha, banco de dados e ferramenta de dados o suporta), compacto para dados tabulares, fácil de ler e criar.
Pontos fracos: Sem suporte para dados aninhados, sem tipos de dados (tudo é string), sem padrão para caracteres especiais, limitado a tabelas planas.
Você sabia? YAML é tecnicamente um superconjunto de JSON. Isso significa que qualquer documento JSON válido é automaticamente um documento YAML válido. Você pode colar JSON em um parser YAML e ele vai funcionar. O inverso não é verdade — os recursos do YAML (comentários, âncoras, strings multilinha) não têm equivalente em JSON.
Quando Usar Cada Um
| Caso de Uso | Melhor Formato | Por Quê |
|---|---|---|
| Requisições e respostas de API | JSON | Padrão da indústria, toda linguagem tem suporte nativo |
| Arquivos de configuração | YAML | Legível por humanos, suporta comentários para documentação |
| Dados de planilha | CSV | Abre diretamente no Excel, Google Sheets, etc. |
| Exportações de banco de dados | CSV | Dados tabulares planos mapeiam diretamente para linhas e colunas |
| Dados aninhados complexos | JSON ou YAML | CSV não consegue representar aninhamento |
| Troca de dados entre sistemas | JSON | Parsing sem ambiguidade, especificação rígida |
| Configuração editada por humanos | YAML | Mais fácil de ler e editar manualmente |
| Listas simples de dados | CSV | Leve, sem overhead |
Convertendo Entre Formatos
JSON para YAML
Esta é a conversão de configuração mais comum. Você tem uma configuração JSON de uma ferramenta e precisa de YAML para outra. A conversão é direta porque YAML suporta tudo que JSON suporta.
{"server": {"host": "0.0.0.0", "port": 8080}}
Se torna:
server:
host: 0.0.0.0
port: 8080
YAML para JSON
Ir de YAML para JSON também é simples, mas você perde comentários (JSON não os suporta) e o resultado é mais verboso.
JSON para CSV
Isso funciona bem para arrays JSON planos (arrays de objetos com as mesmas chaves). Cada objeto se torna uma linha, e cada chave se torna um cabeçalho de coluna.
[
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25}
]
Se torna:
name,age
Alice,30
Bob,25
Atenção A conversão de JSON para CSV falha quando o JSON contém objetos ou arrays aninhados. CSV é plano — não tem como representar um array "skills" ou um objeto "address" aninhado. Dados aninhados precisam ser achatados (address.city, address.country como colunas separadas) ou serializados como string dentro de uma célula CSV.
CSV para JSON
Cada linha se torna um objeto, com cabeçalhos de coluna como chaves. Isso é limpo para dados tabulares simples.
CSV para YAML
Menos comum, mas segue a mesma lógica: cada linha se torna um mapeamento YAML, e o arquivo inteiro se torna uma sequência YAML.
Armadilhas Comuns
Problemas de Codificação CSV
Arquivos CSV podem usar diferentes codificações de caracteres (UTF-8, Latin-1, Windows-1252). Se você abrir um CSV e vir caracteres ilegíveis como "München" em vez de "München", é um problema de codificação. Sempre use UTF-8 quando possível.
Confusão de Delimitador CSV
Nem todos os CSVs usam vírgulas. CSVs europeus frequentemente usam ponto e vírgula porque vírgulas são usadas como separadores decimais em muitos formatos numéricos europeus. Valores separados por tabulação (TSV) são outra variante comum.
Erros de Indentação YAML
YAML usa indentação (espaços, nunca tabulações) para definir estrutura. Uma indentação inconsistente, ou misturar tabulações e espaços, produz erros de parsing ou interpretação incorreta silenciosa. Use exatamente 2 espaços por nível de indentação e configure seu editor para inserir espaços em vez de tabulações.
Atenção Em YAML, a string no é interpretada como booleano false, e yes é interpretado como true. A string 1.0 é interpretada como número. Se você quer as strings literais "no", "yes" ou "1.0", precisa colocá-las entre aspas: "no", "yes", "1.0". Esta é uma das armadilhas mais famosas do YAML.
Vírgulas Finais em JSON
JSON não permite vírgulas finais. Isso é válido em JavaScript mas inválido em JSON:
{"name": "Alice", "age": 30,} // JSON inválido: vírgula final
Performance com Arquivos Grandes
Para conjuntos de dados muito grandes (milhões de linhas), CSV é mais eficiente que JSON ou YAML porque tem overhead mínimo por registro. JSON adiciona chaves e aspas para cada valor, o que aumenta significativamente o tamanho do arquivo para grandes dados tabulares.
Ferramentas Práticas para Conversão
Para conversões rápidas e pontuais, ferramentas baseadas em navegador são a opção mais rápida. Você cola ou envia seus dados, seleciona o formato de destino e obtém o resultado imediatamente.
Dica Converta entre formatos JSON, YAML e CSV instantaneamente: Como Converter Formatos de Dados. Cole seus dados, escolha o formato de destino e copie ou baixe o resultado.
Para trabalhar especificamente com JSON, um formatador que valida e indenta seu JSON é indispensável:
- Formatador JSON — validar, formatar e minificar JSON
- Conversor JSON para CSV — converter arrays JSON para CSV
- Conversor YAML-JSON — converter entre YAML e JSON
- Visualizador CSV — visualizar e explorar arquivos CSV
Converta seus dados agora:
Todas as ferramentas são gratuitas e funcionam diretamente no seu navegador.