Conversão entre JSON, CSV e YAML
JSON, CSV e YAML muitas vezes podem conter os mesmos dados, mas não se correspondem um a um. Este guia explica para que cada formato serve melhor, quais detalhes podem mudar durante uma conversão e como conferir o resultado.
Para que cada formato serve melhor
O JSON é o formato comum de APIs web e de configurações lidas por programas. Ele tem um conjunto pequeno e claro de tipos: objetos, arrays, strings, números, booleanos e null. Sua sintaxe rígida facilita a análise por software, mas ele não tem comentários.
O CSV é uma tabela: uma linha de dados por linha de texto, um valor por coluna. Planilhas, bancos de dados e ferramentas de relatório o importam com facilidade, e ele é compacto para conjuntos de dados grandes e planos. Ele não tem uma forma padrão de descrever tipos de dados nem estruturas aninhadas.
O YAML foi projetado para ser escrito e lido por pessoas. É popular em arquivos de configuração porque permite comentários, usa recuo em vez de chaves e colchetes e pode descrever as mesmas estruturas que o JSON. A sintaxe flexível também faz com que pequenos erros de recuo ou de aspas possam mudar o significado.
| Recurso | JSON | CSV | YAML |
|---|---|---|---|
| Objetos e arrays aninhados | Sim | Não (tabela plana) | Sim |
| Tipos de dados | String, número, booleano, null | Apenas texto | Deduzidos do valor |
| Comentários | Não | Não | Sim |
| Uso típico | APIs, dados de aplicativos | Planilhas, importações | Arquivos de configuração |
O aninhamento é achatado no CSV
Um arquivo CSV tem apenas linhas e colunas, então os dados aninhados precisam ser reorganizados. Há duas abordagens comuns. A primeira achata a estrutura em nomes de coluna como address.city e address.zip. A segunda mantém a parte aninhada como uma string JSON dentro de uma única célula. O Conversor de dados do LeedyBox oferece as duas opções.
As duas abordagens têm prós e contras. Colunas achatadas são fáceis de ler em uma planilha, mas arrays de comprimentos diferentes geram muitas colunas quase vazias. Strings JSON dentro das células mantêm a estrutura, mas são mais difíceis de editar à mão. Se você converter de volta para JSON depois, confira se a estrutura corresponde à original.
No CSV, os tipos viram texto
O CSV armazena todos os valores como texto. O número 42, a string "42" e o booleano true têm a mesma aparência em uma célula. Quando um arquivo CSV é lido de volta, o programa precisa adivinhar, ou ser informado, quais colunas são números ou datas. O conversor do LeedyBox lê os valores CSV como texto, então números vindos de um arquivo CSV aparecem como strings no JSON, a menos que você os altere.
Os aplicativos de planilha fazem suas próprias suposições: podem remover zeros à esquerda de CEPs ou números de telefone, transformar números longos em notação científica ou interpretar valores como datas. Células que começam com =, +, - ou @ podem ser tratadas como fórmulas; o conversor tem uma opção de proteção contra fórmulas do Excel para a saída CSV.
Comentários e tipos no YAML
O JSON não tem comentários, então converter YAML para JSON os descarta. Converter de volta não os restaura. Guarde o arquivo YAML original se os comentários forem importantes.
O YAML deduz os tipos de valores sem aspas. Pelas regras mais antigas do YAML 1.1, usadas por alguns analisadores, palavras como no, yes, on e off viram booleanos, então um código de país como NO pode se transformar em false. Valores como 2026-10-02 podem virar objetos de data, e 1e3 ou 010 podem ser lidos como números. O conversor do LeedyBox lê YAML com o core schema do YAML 1.2, que mantém no e as datas como texto, mas outras ferramentas que leem o seu arquivo podem se comportar de outra forma. Colocar entre aspas os valores que precisam continuar como texto é o hábito mais seguro.
Números grandes em JavaScript
O JavaScript armazena números como valores de ponto flutuante de 64 bits. Nem todos os inteiros maiores que 9.007.199.254.740.991 (253 − 1) podem ser representados com exatidão, então um ID grande como 12345678901234567891 pode ser arredondado sem aviso durante a análise. Isso afeta qualquer conversor que funcione no navegador, incluindo este, que mostra um aviso quando detecta esses números. IDs de banco de dados e outros identificadores longos ficam mais seguros armazenados como strings.
Como conferir o resultado
Uma conversão que gera uma saída válida não é necessariamente correta. Antes de usar o resultado:
- Compare o número de linhas ou itens com a origem.
- Confira alguns registros por amostragem, incluindo os que têm valores vazios, caracteres especiais, quebras de linha ou dados aninhados.
- Verifique as colunas que devem ser números, booleanos ou datas no sistema de destino.
- Procure números longos que possam ter sido arredondados.
- Valide a saída com o programa que vai lê-la, usando primeiro uma cópia dos seus dados.
A ferramenta Comparar textos pode ajudar a comparar um arquivo original com o resultado de uma conversão de ida e volta.
Perguntas frequentes
Posso converter JSON para CSV e de volta sem alterações?
Só com dados simples e planos e, mesmo assim, números e booleanos geralmente voltam como texto. Os dados aninhados e os tipos dependem das opções usadas, então compare o resultado com o original.
Por que meu valor YAML virou true ou false?
Alguns analisadores YAML tratam palavras sem aspas como yes, no, on e off como booleanos. Coloque o valor entre aspas para mantê-lo como texto.
Meus dados são enviados quando eu os converto?
O Conversor de dados do LeedyBox funciona no seu navegador, então os dados que você cola são processados no seu dispositivo.