Conversor CSV ↔ JSON

Converta CSV em um array JSON de objetos e vice-versa — com suporte a campos entre aspas e delimitadores de ponto e vírgula ou tabulação, tudo no seu navegador.

1.103 visualizações

Como a Conversão Funciona de Verdade

CSV e JSON modelam dados de formas diferentes, e a direção em que você converte determina quanta suposição está envolvida. CSV → JSON é quase mecânico: a linha de cabeçalho vira o conjunto de chaves, e cada linha seguinte vira um objeto com essas chaves — nome,idade sobre Ada,36 se torna [{"nome":"Ada","idade":"36"}]. Campos entre aspas contendo vírgulas, aspas escapadas ("") e células com múltiplas linhas são analisados conforme a RFC 4180, e o delimitador (vírgula, ponto e vírgula ou tabulação) é detectado automaticamente a partir da primeira linha.

JSON → CSV é onde mora a dificuldade real. CSV é estritamente plano — uma linha, um registro, um valor por célula — enquanto JSON suporta naturalmente aninhamento: um objeto pode conter outro objeto ou um array como valor de um campo, e não existe uma forma universalmente aceita de encaixar isso em uma única célula de CSV. Pegue {"nome":"Ada","endereco":{"cidade":"Londres"}} — a coluna deveria se chamar endereco.cidade (notação de ponto, achatando o objeto aninhado em colunas extras), ou o valor inteiro de endereco deveria ser embutido como uma string JSON crua em uma célula, tipo {"cidade":"Londres"}? As duas abordagens são usadas na prática e nenhuma delas é "o" padrão; esta ferramenta usa a notação de ponto para um nível de aninhamento e recorre a embutir o texto JSON para arrays e estruturas mais profundas, porque isso mantém objetos simples genuinamente amigáveis a planilhas sem perder dados silenciosamente nos complexos.

Vale a pena internalizar: isso não é uma falha da ferramenta, é uma lacuna do próprio modelo de dados. Qualquer conversor CSV↔JSON que você experimentar — este incluído — precisa tomar uma decisão editorial sobre achatamento, porque os dois formatos nunca foram projetados para serem perfeitamente intercambiáveis. CSV foi criado para planilhas tabulares; JSON foi criado para documentos de formato arbitrário. Saber disso de antemão explica por que fazer um arquivo JSON complexo ir e voltar pelo CSV raramente reproduz a estrutura original exata, e por que manter dados profundamente aninhados em formato JSON costuma ser simplesmente a decisão certa, e não uma limitação a ser contornada.

O Que Vale a Pena Saber

  • CSV não tem tipos de dados. Todo valor vai e volta como texto, a menos que você ative a conversão de números, que transforma strings com aparência numérica em números JSON reais (mantendo IDs com zeros à esquerda, como "007", como strings, já que convertê-los os corromperia).
  • O delimitador é detectado automaticamente, não presumido. O Excel exporta com ponto e vírgula em muitas configurações regionais europeias e brasileiras, porque ali a vírgula já é o separador decimal — o analisador verifica a linha de cabeçalho para escolher o correto.
  • JSON → CSV une todas as chaves entre objetos. Se alguns registros têm um campo que outros não têm, o cabeçalho inclui toda chave vista em qualquer lugar do array, e as ausentes ficam em branco naquela linha.
  • Nada sai do seu navegador. A análise e a conversão acontecem localmente em JavaScript, então colar uma exportação sensível não a envia para lugar nenhum.
  • A ordem das linhas é preservada nas duas direções. A primeira linha de dados continua sendo a primeira após a conversão em qualquer sentido, o que importa quando uma planilha ou um script posterior depende da ordem posicional em vez de uma chave de ordenação explícita.

Perguntas Frequentes

Por que todos os meus números viram strings?

CSV não tem tipos — tudo é texto. Ative a opção "converter números" para transformar valores com aparência numérica em números JSON (IDs com zeros à esquerda são mantidos como strings, já que convertê-los os corromperia silenciosamente).

Meu CSV do Excel usa ponto e vírgula — vai funcionar?

Sim — o delimitador é detectado a partir da primeira linha. Muitas configurações regionais do Excel na Europa e no Brasil exportam com ponto e vírgula porque a vírgula já é o separador decimal ali.

E o JSON aninhado, como fica?

CSV é plano: objetos/arrays aninhados são serializados como strings JSON dentro da célula, ou achatados em colunas com notação de ponto para objetos rasos. Para dados profundamente aninhados, achate a estrutura antes ou mantenha-a em JSON em vez de forçá-la numa planilha.

Por que esta ferramenta simplesmente não escolhe um padrão único para achatar JSON aninhado?

Porque não existe um — ecossistemas diferentes realmente discordam entre si. Colunas com notação de ponto (endereco.cidade) mantêm o aninhamento simples legível em planilha, mas multiplicam colunas rapidamente; embutir o valor aninhado como uma string JSON crua mantém uma coluna por campo, mas exige reanalisar aquela célula depois. Esta ferramenta usa notação de ponto para objetos rasos e recorre a texto JSON embutido para arrays e aninhamentos mais profundos.

O que acontece com um array dentro de um objeto durante o JSON → CSV?

Ele é serializado como texto JSON dentro de uma única célula, em vez de espalhado por colunas — arrays podem ter qualquer tamanho, então não há um número fixo de colunas para reservar a eles. Copie o conteúdo dessa célula e analise separadamente se precisar dos itens individuais.

Comentários

Ainda não há comentários — seja o primeiro a escrever um!

Ferramentas Semelhantes