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. Escolha uma direção. CSV → JSON vem selecionado por padrão; JSON → CSV espera um array JSON de objetos simples.
- 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. 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. Copie ou baixe. Copiar resultado copia a saída; o botão de download salva como
data.jsonoudata.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
2020vira 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ê quer | Use |
|---|---|
| Converter entre CSV e um array JSON | Esta página |
| Ver o CSV como tabela para copiar em HTML | CSV para tabela |
| Criar uma tabela Markdown a partir de CSV | Gerador de tabelas Markdown |
| Manter só algumas colunas de um CSV | Extrator de colunas |
| Verificar ou reformatar o próprio JSON | Formatador de JSON |
| Converter YAML ou XML de e para JSON | YAML para JSON, XML para JSON |
| Formatar um CSV para um trabalho acadêmico | Gerador 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
007ou1e5exatamente 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.