fixmint
PT

Converter CSV para JSON e de volta sem perder dados

Por · · atualizado em 8 de novembro de 2026 · 5 min de leitura

CSV é uma tabela de texto simples: um registro por linha, com os campos separados por um delimitador, geralmente a vírgula. Ele quebra quando um campo contém o delimitador, aspas duplas ou uma quebra de linha, porque o leitor precisa distinguir estrutura de conteúdo. Siga as regras de aspas, confira o delimitador e a linha de cabeçalho, e mantenha os números com zeros à esquerda como texto. O restante deste artigo explica o que uma ida e volta pode e não pode preservar.

CSV para JSONPreciso de CSV em JSON, ou o inversoUse de graça

O que é realmente um arquivo CSV

O CSV não tem um padrão único e oficial, mas a RFC 4180 descreve a forma comum, e a maioria dos leitores a segue. Suas regras principais cabem em uma lista curta:

  • Cada registro fica em sua própria linha, e a RFC determina que as linhas terminem com retorno de carro e avanço de linha (CRLF).
  • Os campos são separados por vírgulas.
  • Um campo que contém vírgula, aspas duplas ou quebra de linha fica entre aspas duplas.
  • Aspas duplas dentro de um campo entre aspas são escritas como duas aspas duplas.

Assim, a linha 1001,"Smith, Ann",02134 tem três campos, porque a vírgula dentro das aspas faz parte do conteúdo. Um separador que corta em toda vírgula encontra quatro. O leitor do fixmint aplica essas regras: um campo entre aspas pode conter o delimitador, quebras de linha e aspas duplicadas, e uma aspa não fechada é reportada com a linha onde ela começa.

Por que o separador muda

A vírgula é o padrão da RFC, mas onde ela é o separador decimal, e 1,5 significa um e meio, as planilhas costumam salvar CSV com ponto e vírgula. Arquivos separados por tabulação (TSV) evitam o conflito na maioria dos dados, porque tabulações raramente aparecem dentro de textos.

O menu de separador oferece Automático, Vírgula, Ponto e vírgula, Tabulação e Barra vertical. Automático lê as primeiras dez linhas, conta cada candidato fora das aspas e escolhe o que tem a contagem por linha mais consistente. Escolha o separador você mesmo quando o automático errar.

Convertendo no fixmint

O exemplo a seguir usa as opções padrão da ferramenta CSV para JSON.

Exemplo prático

Cole este CSV, com a opção "A primeira linha é um cabeçalho" marcada:

id,name,zip,note
1001,"Smith, Ann",02134,"She said ""hi"""
1002,Bo,10001,"line one
line two"

Com "Converter números" desativada e a indentação do JSON em 2 espaços, a ferramenta retorna:

[
  {
    "id": "1001",
    "name": "Smith, Ann",
    "zip": "02134",
    "note": "She said \"hi\""
  },
  {
    "id": "1002",
    "name": "Bo",
    "zip": "10001",
    "note": "line one\nline two"
  }
]

Com "Converter números" ativada, id e zip 10001 viram números, e 02134 continua como texto.

Passo a passo

  1. Cole o CSV ou arraste um arquivo .csv, .tsv, .txt ou .json.
  2. Confira se "A primeira linha é um cabeçalho", o separador e "Converter números" estão corretos. Escolha uma indentação de JSON de 2 espaços, Tabulação ou Minificado.
  3. Copie o resultado ou baixe-o como .json.

Mantenha os números como texto

Os números JSON não podem ter zeros à esquerda, então 02134 não é um número JSON válido. CEPs, números de telefone e códigos de produto precisam continuar como texto, ou o zero desaparece. Com "Converter números" ativada, a ferramenta converte 10001, mas mantém 02134 como string. A opção vem desativada por padrão. Ela converte apenas valores com ponto como separador decimal, então 1,5 em um arquivo com ponto e vírgula permanece como digitado.

Identificadores longos também exigem cuidado. O JavaScript, que roda a maior parte do JSON no navegador, armazena números como valores de ponto flutuante de 64 bits. Números inteiros são exatos apenas até 9.007.199.254.740.991, que é dois elevado a 53, menos 1. O número 12345678901234567890 vira 12345678901234567000 quando um programa JavaScript o lê. A ferramenta grava os dígitos como digitados, mas um programa que analisa o JSON em JavaScript vai arredondá-los. Mantenha os IDs como strings. O Formatar JSON também mantém esses números exatamente como digitados e informa quantos manteve.

JSON aninhado e a volta para CSV

CSV é plano, e JSON pode ser aninhado. Ao converter JSON para CSV, é criada uma coluna para cada chave de todos os objetos, na ordem em que cada chave aparece pela primeira vez. Um objeto ou lista aninhado vai para a célula como texto JSON, um null vira célula vazia, e true e false são escritos como palavras. As linhas são separadas por CRLF, e um campo só é colocado entre aspas quando contém o delimitador, aspas, quebra de linha ou espaços nas extremidades.

A entrada que começa com [ ou { é lida como JSON. O botão com seta alterna a direção, identificado como CSV → JSON ou JSON → CSV. Na direção JSON → CSV, as opções de saída mostram um menu de separador e a opção Para Excel.

Uma ida e volta perde informações. Um null e uma string vazia viram, ambos, célula vazia, e o aninhamento não volta, então guarde o JSON original se precisar da estrutura.

Excel, UTF-8 e a marca de ordem de bytes (BOM)

Um arquivo CSV são bytes, e o leitor precisa conhecer a codificação. O UTF-8 comporta letras acentuadas e outros alfabetos. Uma marca de ordem de bytes (BOM), três bytes no início do arquivo, indica que o arquivo é UTF-8. Sem ela, alguns programas de planilha leem o arquivo em uma página de código local, e letras acentuadas viram caracteres estranhos. As planilhas também costumam transformar 02134 em 2134 ao abrir um CSV.

A opção Para Excel adiciona a BOM apenas ao CSV baixado, nunca ao texto copiado, e só na direção JSON → CSV. O leitor remove a BOM da entrada, então um arquivo que já tem uma converte sem erro.

Casos especiais

  • Linhas irregulares. Com cabeçalho ativado, uma linha curta é completada com valores vazios, e uma linha mais longa mantém os valores extras como column_N. O resultado informa quantas linhas diferem do cabeçalho.
  • Cabeçalhos repetidos ou vazios. Um nome repetido recebe _2, _3 e assim por diante, e um nome vazio vira column_N. As duas mudanças impedem que duas chaves se sobrescrevam.
  • Aspas curvas. Aspas inteligentes de processadores de texto não são aspas de CSV, então um campo como “Smith, Ann” se divide na vírgula. Converta-as antes com Corrigir texto colado ou conforme descrito em o guia sobre aspas curvas.
  • Quebras de linha dentro de aspas. Um campo que ocupa duas linhas é um único registro, mas a Remover linhas duplicadas divide a entrada em cada quebra de linha, então trataria as duas metades como linhas separadas. Converta para JSON e compare os objetos, ou confira manualmente. A ferramenta continua útil para listas com um valor por linha.
  • Arquivos grandes. A caixa de resultado mostra os primeiros 100.000 caracteres, mas Copiar e o download incluem a saída inteira.
  • JSON inválido. O conversor informa a linha e a coluna do erro, com um acento circunflexo sob o caractere. O Formatar JSON explica os deslizes mais comuns, e o guia de erros de JSON os cobre com mais detalhes.

Espaços soltos ao redor dos campos, linhas em branco no meio do arquivo e aspas usadas de forma inconsistente causam a maioria dos problemas de CSV, antes mesmo de o separador importar. Use o Limpador de CSV primeiro e depois converta.

Traduzido do Original em inglês com auxílio de IA.

Comentários

    Ainda não há comentários. Seja o primeiro.

    Sua nota (opcional)

    Seu e-mail nunca é exibido nem guardado.

    Capa de How to Remain Valuable When Intelligence Becomes CheapHow to Remain Valuable When Intelligence Becomes Cheap

    224 páginas sobre as vantagens humanas, econômicas e estratégicas que continuam escassas quando a IA consegue fazer a maior parte do trabalho cognitivo.

    $3.84Compre na GumroadEm inglês