Pular para o conteúdo
LeedyBox
Apoiar

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.