Conversor CSV ↔ JSON

RSS

Converta CSV de planilhas em arrays JSON ou transforme JSON de volta em CSV, com detecção automática de delimitador. Os dados ficam no seu navegador.

Funciona 100% no seu navegador. Nada do que você cola é enviado ou armazenado.
Entrada CSV ou JSON
Resultado
Pronto.

Como usar o conversor CSV ↔ JSON

  1. Selecione a direção: CSV → JSON ou JSON → CSV.
  2. Cole seus dados. No CSV, a primeira linha é tratada como cabeçalho e o delimitador é detectado automaticamente.
  3. Confira a saída. Ative a conversão de tipos se quiser números e booleanos em vez de strings.
  4. Copie o resultado ou cole-o no seu código, na sua requisição de API ou na sua planilha.

Toda a análise acontece no seu navegador. Os dados da sua planilha não são enviados nem armazenados em lugar nenhum, o que torna a ferramenta segura para listas de clientes e exportações internas.

Como o CSV é mapeado para JSON

O CSV (valores separados por vírgula) é uma tabela plana: um registro por linha, com os campos separados por um delimitador. Quando há uma linha de cabeçalho, cada título vira uma chave e cada linha seguinte vira um objeto JSON. O arquivo inteiro vira um array de objetos:

id,name,city
1,Ada,London
2,Linus,Helsinki
[
  {"id": "1", "name": "Ada", "city": "London"},
  {"id": "2", "name": "Linus", "city": "Helsinki"}
]

Converter JSON de volta para CSV funciona ao contrário: o conversor reúne as chaves dos objetos para formar a linha de cabeçalho e depois escreve uma linha por objeto. Objetos que não têm uma chave ficam com a célula vazia.

Detecção automática do delimitador

Apesar do nome, os arquivos "CSV" muitas vezes usam outros separadores. Programas de planilha em idiomas que usam a vírgula como separador decimal costumam exportar com ponto e vírgula, e muitas ferramentas de banco de dados exportam valores separados por tabulação (TSV). O conversor inspeciona as primeiras linhas e escolhe o delimitador (vírgula, ponto e vírgula, tabulação ou barra vertical) que divide as linhas em um número consistente de colunas.

Campos entre aspas (RFC 4180)

A RFC 4180 é o que o CSV tem de mais próximo de um padrão. Suas regras principais: um campo que contém o delimitador, aspas duplas ou uma quebra de linha deve ser envolvido por aspas duplas, e aspas duplas dentro de um campo entre aspas são escapadas duplicando-as.

name,comment
"Smith, John","He said ""hello"""
"Lee","Line one
Line two"

Isso gera dois registros: o primeiro com o nome Smith, John e o comentário He said "hello", e o segundo com um comentário que contém uma quebra de linha de verdade.

Armadilhas comuns

JSON aninhado não cabe em uma tabela plana

O CSV não tem o conceito de aninhamento. Objetos aninhados costumam ser achatados com notação de ponto, mas os arrays não têm uma única representação óbvia:

{"id": 1, "address": {"city": "Oslo", "zip": "0150"}, "tags": ["a", "b"]}

id,address.city,address.zip,tags
1,Oslo,0150,"[""a"",""b""]"

Os arrays são serializados como texto JSON dentro de uma célula. Se os seus dados são profundamente aninhados, avalie se o CSV é mesmo o destino certo.

A conversão de tipos pode destruir dados

Todo valor de CSV é texto. A conversão automática de tipos é prática, mas transforma CEPs como 0150 em 150, números de telefone em números e IDs longos em valores arredondados (os números do JavaScript são exatos apenas até 253). Deixe a conversão de tipos desativada nas colunas de identificadores.

Marcas de ordem de bytes e finais de linha

Arquivos salvos pelo Excel como "CSV UTF-8" começam com uma marca de ordem de bytes (BOM) invisível que pode acabar grudada no nome do primeiro cabeçalho. A RFC 4180 especifica finais de linha CRLF, mas arquivos só com LF são comuns e geralmente aceitos.

Dicas

  • Verifique se os nomes dos cabeçalhos são únicos; cabeçalhos duplicados se sobrescrevem como chaves JSON.
  • Remova os espaços depois dos delimitadores (a, b) se a sua origem os acrescenta; caso contrário, eles passam a fazer parte do valor.
  • Valide o JSON resultante com o Formatador e validador de JSON ou transforme-o em YAML com o Conversor JSON ↔ YAML.

Perguntas frequentes

E se o meu CSV não tiver linha de cabeçalho?

Sem cabeçalhos não há nomes de chave naturais. Os conversores então devolvem um array de arrays ou geram chaves provisórias como column1, column2. Adicionar antes uma linha de cabeçalho gera um JSON mais limpo.

Por que todos os meus números viram strings?

O CSV guarda tudo como texto, então uma conversão fiel mantém strings. Ative a conversão de tipos para obter números, true/false e null, mas tenha cuidado com valores que só parecem numéricos.

Posso converter um objeto JSON em vez de um array?

Um arquivo CSV representa várias linhas, então a entrada natural é um array de objetos. Um único objeto vira uma linha de dados. Se os seus registros estão dentro de uma propriedade como {"data": [...]}, cole o array interno.

Como abrir o CSV corretamente no Excel?

Use o recurso de importação de dados do Excel em vez de dar um clique duplo, para poder escolher o delimitador e a codificação e marcar as colunas de ID como texto, mantendo os zeros à esquerda.

Atualizado

Copiado para a área de transferência