Ir para o conteúdo

Conversor de CSV para JSON

Cole um CSV e obtenha um array JSON de objetos com chaves da linha de cabeçalho, ou um array de arrays se não houver cabeçalho. Troque a direção para transformar um array JSON de objetos simples de volta em CSV. Vírgulas entre aspas, aspas duplicadas e quebras de linha dentro dos campos são lidas corretamente, e a conversão roda no seu navegador. Gratuito, sem cadastro.

Direção

Como usar o conversor de CSV para JSON

  1. 1. Escolha uma direção. CSV → JSON vem selecionado por padrão; JSON → CSV espera um array JSON de objetos simples.
  2. 2. Defina as opções. O delimitador pode ser detectado automaticamente ou fixado em vírgula, ponto e vírgula ou tabulação; para JSON → CSV, a Detecção automática escreve vírgulas. Para CSV → JSON você também escolhe uma indentação de 2 espaços, 4 espaços ou tabulação, e se a primeira linha traz cabeçalhos.
  3. 3. Cole e converta. Pressione Converter. Problemas — uma aspa não fechada, JSON inválido, um array que não é formado por objetos — aparecem como mensagem em vez de resultado.
  4. 4. Copie ou baixe. Copiar resultado copia a saída; o botão de download salva como data.json ou data.csv.

Como o CSV é lido

CSV parece simples, mas não é: o mesmo arquivo pode usar vírgulas, ponto e vírgula ou tabulações, e um campo pode conter justamente o caractere que separa os campos. A especificação mais próxima é a RFC 4180, que é informativa, não um padrão. Ela diz que um campo com vírgula, aspas duplas ou quebra de linha deve ser envolvido em aspas duplas, e que uma aspa dupla dentro desse campo é escrita como duas. O conversor segue essas regras e acrescenta alguma tolerância:

  • Campos entre aspas. Um campo que começa com aspas duplas vai até a aspa de fechamento, então pode conter delimitadores, quebras de linha e "" para uma aspa literal. Uma aspa que nunca é fechada interrompe a conversão e informa a linha onde ela começou.
  • Fins de linha. LF, CRLF e um CR isolado encerram uma linha, e linhas em branco são ignoradas.
  • Detecção de delimitador. No modo automático, o conversor olha só a primeira linha e escolhe o entre vírgula, ponto e vírgula ou tabulação que aparece mais vezes; um empate vai para a vírgula. Se a primeira linha do arquivo for incomum — uma única coluna, por exemplo, ou uma linha de título —, escolha o delimitador você mesmo. A RFC 4180 só conhece vírgulas; o ponto e vírgula é comum em arquivos exportados de planilhas configuradas com locale europeu.
  • Tudo é texto. O conversor não adivinha tipos, então 2020 vira a string "2020", não um número, e uma célula vazia vira "", não null. Converta os tipos depois, se seu código precisar deles.

Exemplo prático

Cabeçalho

name,note,year

Linha 1

"Smith, Jane","Said ""hello""",2020

Linha 2

Lee,short

Resultado

Dois objetos. Smith, Jane tem a nota Said "hello" e o ano "2020"; Lee tem a nota short e o ano "".

A vírgula dentro de Smith, Jane fica em um só campo por causa das aspas, e as aspas duplas se reduzem a uma. A linha de Lee tem uma célula a menos, então o ano ausente vira uma string vazia; uma linha com células extras perde as extras, porque não há cabeçalho para nomeá-las. Desmarque A primeira linha são cabeçalhos (gera objetos) e a mesma entrada vira um array de arrays — [["name","note","year"],…] — com as linhas curtas mantidas curtas.

Nomes de cabeçalho duplicados colidem: com duas colunas chamadas id, a posterior prevalece e a anterior se perde, então renomeie uma antes.

Voltando: de JSON para CSV

A direção inversa espera um array de nível superior cujos itens são todos objetos. A linha de cabeçalho é a união de todas as chaves, na ordem da primeira aparição, então objetos com chaves diferentes continuam alinhados, e um valor ausente fica vazio. Números e booleanos são escritos como aparecem, null vira uma célula vazia, e qualquer array ou objeto aninhado é escrito na sua célula como texto JSON entre aspas. Se seus dados forem aninhados, achate-os antes. Células que contêm o delimitador, uma aspa ou uma quebra de linha são colocadas entre aspas, com as aspas duplicadas, e as linhas são unidas com quebras de linha simples.

Aplicado a [{"name":"Smith, Jane","year":2020,"tags":["a","b"]},{"name":"Doe","note":"two\nlines","year":null}], o conversor escreve o cabeçalho name,year,tags,note, uma primeira linha com "Smith, Jane", 2020 e o texto entre aspas ["a","b"], e uma segunda linha para Doe, cujos ano e tags ficam vazios e cuja nota é o texto entre aspas de duas linhas.

De qual ferramenta você precisa?

Você querUse
Converter entre CSV e um array JSONEsta página
Ver o CSV como tabela para copiar em HTMLCSV para tabela
Criar uma tabela Markdown a partir de CSVGerador de tabelas Markdown
Manter só algumas colunas de um CSVExtrator de colunas
Verificar ou reformatar o próprio JSONFormatador de JSON
Converter YAML ou XML de e para JSONYAML para JSON, XML para JSON
Formatar um CSV para um trabalho acadêmicoGerador de tabelas LaTeX, Gerador de tabelas APA

Perguntas frequentes

Como converto CSV para JSON?
Cole o CSV na caixa, deixe CSV → JSON selecionado e pressione Converter. Com A primeira linha são cabeçalhos (gera objetos) marcado, você recebe um array de objetos com chaves dos nomes do cabeçalho; sem ele, recebe um array de arrays. Copie o resultado ou baixe-o como data.json.
O conversor lida com campos entre aspas com vírgulas ou quebras de linha?
Sim. Um campo envolto em aspas duplas pode conter o delimitador, quebras de linha e aspas duplicadas, como descreve a RFC 4180. Uma aspa de abertura sem aspa de fechamento interrompe a conversão e informa a linha onde o campo começou.
Quais delimitadores são compatíveis?
Vírgula, ponto e vírgula e tabulação, detectados automaticamente pela primeira linha ou escolhidos manualmente. Delimitadores com barra vertical ou outros não são compatíveis; um extrator de colunas ou uma substituição de texto pode trocá-los por vírgulas antes.
Por que meus números são strings no JSON?
O CSV não tem tipos, e o conversor não os adivinha, então todo valor sai como string e uma célula vazia como string vazia. Isso mantém valores como 007 ou 1e5 exatamente como foram escritos; converta os tipos no seu código onde precisar de números.
Como funciona o JSON para CSV?
Ele precisa de um array JSON de objetos. Cada objeto vira uma linha, as colunas são todas as chaves que aparecem em algum lugar, e objetos ou arrays aninhados são escritos na célula como texto JSON. JSON inválido é informado com o número da linha quando o analisador do seu navegador fornece uma posição.
Por que meu CSV abre errado no Excel depois da conversão?
O arquivo é UTF-8 simples, sem marca de ordem de bytes, e usa o delimitador que você escolheu. Assim, o Excel em uma região que espera ponto e vírgula pode colocar tudo em uma coluna, e caracteres não ingleses podem exigir o assistente de importação com UTF-8. Escolher o delimitador ponto e vírgula costuma resolver o primeiro problema.
Meus dados são enviados para algum lugar?
Não. As duas direções rodam no seu navegador, e o texto que você cola não é enviado ao CitationEasy. O download é gerado localmente.

Ferramentas relacionadas

Mais em Dados, marcação e código