IA no seu dispositivo — profissional e privado.

CSV para JSON

Converta CSV em JSON no seu dispositivo — objetos, JSON Lines, valores tipados, chaves aninhadas.

  • Sem upload
  • 5 formas de saída
  • Números e booleanos reais
  • Até 25 MB grátis

Solte um arquivo CSV aqui

.csv .tsv .txt .psv · até 25.0 MB grátis

A prévia do JSON aparece aqui assim que um arquivo é carregado.
Ajustes
Forma de saída
Forma de saída

O que é o nível superior do documento. Cada uma é um arquivo diferente, não outro layout.

Indentação
Indentação

Dois espaços leem bem num diff; minificado é o menor.

Valores

Zeros à esquerda, ids longos, telefones, Infinity e NaN ficam sempre como texto.

Células vazias
Células vazias

No que uma célula vazia se transforma.

Formato numérico
Formato numérico

O modo automático lê o arquivo: só votam os valores que declaram sua própria convenção.

Chaves
Caixa das chaves
Aninhar cabeçalhos com ponto

Cabeçalhos duplicados são renomeados e os vazios numerados, então nenhuma coluna se perde.

Leitura do arquivo
0

Detectado do arquivo. Altere qualquer um se a prévia parecer errada.

Lote
Pro

Um lote baixa como um só ZIP. Fundir une todos os arquivos num documento.

Limites

Grátis: 1 arquivo por vez, até 25.0 MB. Todas as formas de saída e opções incluídas.

Como converter CSV para JSON

  1. 1

    Adicione seu CSV

    Solte ou procure um arquivo .csv, .tsv, .txt ou .psv. O delimitador, o caractere de aspas e a codificação são detectados do arquivo e exibidos para que você possa alterá-los.

  2. 2

    Escolha a forma de saída

    Array de objetos para uma API, JSON Lines para importação em banco, mapa indexado para consultas, arrays por coluna para um dataframe, ou array de arrays para dados matriciais.

  3. 3

    Decida como os valores são lidos

    Ative a inferência de tipos para obter números, booleanos e null reais em vez de strings, e escolha se uma célula vazia vira null, string vazia ou é omitida.

  4. 4

    Converta e exporte

    Toque em Converter e copie o documento inteiro para a área de transferência ou baixe-o. Tudo roda no seu dispositivo, não nos nossos servidores.

O que este fluxo CSV → JSON oferece

Feito para levar planilhas até uma API: controle como as linhas são divididas, como os bytes são decodificados, no que cada valor se transforma e como os cabeçalhos viram chaves — depois copie o JSON ou baixe o arquivo sem sair da sua máquina.

  • Cinco formas de saída, não uma — Array de objetos para uma API, JSON Lines para importação em banco, mapa indexado para consultas, arrays por coluna para um dataframe, ou array de arrays para dados matriciais.
  • Valores reais, não strings — Números, booleanos e null saem como valores JSON em vez de texto entre aspas — protegendo os casos em que isso perderia informação.
  • Delimitador e aspas ajustáveis — Detecte a partir do arquivo ou force vírgula, ponto e vírgula, tabulação ou barra, com aspas duplas, simples ou nenhuma para exportações que fogem das regras usuais.
  • Codificação que corrige texto corrompido — Marcas de ordem de bytes prevalecem sobre sua escolha, exportações UTF-16 são lidas corretamente e ISO-8859-1 é um decodificador Latin-1 de verdade, não um alias.
  • Objetos, matrizes ou registros aninhados — Ative primeira linha como chaves para linhas { "coluna": "valor" }, mantenha um array 2D se você já normaliza no código, ou dobre cabeçalhos com ponto em objetos aninhados.
  • Copiar, baixar, repetir — O JSON formatado está pronto para Postman, jq ou para comitar num repositório — regenere na hora após cada ajuste.
  • Execução com privacidade em primeiro lugar — A prévia aparece assim que o arquivo é lido — sem fila, sem upload, sem espera.

Escolhendo uma forma de saída

A forma decide o que é o nível superior do documento, e a correta depende inteiramente do que vai lê-lo. Cada uma é um arquivo diferente, não uma formatação diferente do mesmo arquivo.

  • Array de objetos — [{ "id": 1, "name": "Ada" }] — o padrão, e o que uma API HTTP, um aplicativo JavaScript ou uma struct tipada espera.
  • Array de arrays — [["id","name"],[1,"Ada"]] — cada célula por posição, sem consumir a linha de cabeçalho. Certo para dados matriciais ou para um arquivo com cabeçalhos duplicados ou ausentes.
  • JSON Lines (NDJSON) — Um registro completo por linha, sem colchetes envolventes e sem vírgulas entre registros. É o que mongoimport, BigQuery e a maioria dos pipelines de log aceitam, e nunca é indentado — um registro que ocupa várias linhas quebra o formato.
  • Mapa indexado — { "SKU-1": { … } } — um índice, chaveado pela coluna que você escolher. Certo quando o consumidor busca registros por identificador em vez de percorrê-los. Duas linhas com a mesma chave não podem sobreviver juntas, então a ferramenta informa quantas foram descartadas.
  • Arrays por coluna — { "id": [1,2], "name": ["Ada","Grace"] } — orientado a colunas, que é o que pandas, Arrow e a maioria das bibliotecas de gráficos querem, e bem menor que objetos por linha quando há muitas colunas.

Como os valores viram tipos JSON

Com a inferência de tipos ligada, cada célula é lida como o valor JSON que realmente é, em vez de ser colocada entre aspas. O interessante não é o que é convertido — é o que deliberadamente não é, porque cada um destes casos é um valor que um conversor ingênuo danifica em silêncio.

O que é convertido

  • Números — Inteiros, decimais e expoentes, com separadores de milhar removidos e as convenções 1,234.56 e 1.234,56 ambas compreendidas. Parênteses contábeis são lidos como negativos, então (1.234,50) vira -1234,5.
  • Booleanos — true, false, TRUE, FALSE, True e False viram booleanos JSON de verdade. TRUE e FALSE é o que uma planilha escreve; as formas minúsculas são o que todo o resto escreve.
  • Null — Uma célula vazia vira null por padrão, e o texto literal null ou NULL — o que uma exportação de banco escreve — também vira null.
  • JSON embutido, sob demanda — Uma célula que é ela própria um array ou objeto JSON pode ser analisada em vez de virar texto entre aspas, o que torna uma exportação do Airtable ou Notion utilizável. Está desligado por padrão, porque um campo de endereço com uma chave não é uma estrutura de dados.

O que fica deliberadamente como texto

  • Zeros à esquerda — 007 e 00123 continuam strings. Convertê-los em 7 e 123 não pode ser desfeito, e um código de peça ou um CEP não é uma quantidade.
  • Identificadores longos — Um número de cartão, IMEI ou id de banco com mais de quinze dígitos significativos continua string. Como número JSON, 12345678901234567890 vira 12345678901234567000 — em silêncio e sem erro.
  • Sinal de mais inicial — +5511987654321 é um telefone, não um inteiro positivo, e tirar o mais muda o que ele significa.
  • Infinity e NaN — Nenhum dos dois é JSON válido. Um conversor que os deixa passar não produz um arquivo quebrado — produz um arquivo válido em que essas células silenciosamente viraram null.
  • Datas — JSON não tem tipo de data, então 2024-01-15 continua exatamente a string que o arquivo continha. Qualquer outra coisa seria um palpite sobre um formato que o arquivo nunca declarou.
  • Moeda e porcentagens — R$ 50 e 12% mantêm seus símbolos. Removê-los muda o significado do valor e não há em JSON onde registrar que um número era uma porcentagem.

Linhas de cabeçalho, chaves e colisões

A linha de cabeçalho é onde um conversor mais facilmente perde dados sem avisar, porque toda falha ali ainda produz um documento bem formado — só que com uma coluna a menos. Estes casos são tratados em vez de ignorados, e cada um é informado ao lado do arquivo.

  • Cabeçalhos duplicados — Um arquivo com duas colunas chamadas id escreveria a segunda por cima da primeira. A posterior é renomeada id_2, e a ferramenta diz quantas foram renomeadas.
  • Cabeçalhos em branco — Uma célula de cabeçalho vazia vira column_4, numerada pela posição no arquivo para deixar claro de que coluna se trata.
  • Cabeçalhos mais curtos que os dados — Se o corpo é mais largo que o cabeçalho, as colunas extras são nomeadas em vez de descartadas — perder valores porque a linha de cabeçalho era curta não aparece na saída.
  • Caixa das chaves — Deixe os nomes exatamente como o arquivo escreveu, ou converta para minúsculas, maiúsculas, camelCase ou snake_case. Renomear é opcional: um conversor não deveria renomear por padrão.
  • Nomes de aparência reservada — Uma coluna chamada __proto__ ou constructor mantém seu nome exato. O documento é escrito diretamente como texto em vez de montado em objetos JavaScript, então nomes que não seriam atribuíveis em código são preservados corretamente.

JSON aninhado a partir de cabeçalhos com ponto

Exportações de CRMs e criadores de formulários costumam gravar dados aninhados como colunas planas chamadas endereço.cidade e endereço.cep. Ativar o aninhamento dobra essas colunas de volta num objeto real, de modo que o JSON recupera a forma que os dados tinham antes de serem achatados.

  • Ponto ou barra — Qualquer um dos separadores serve, e a opção está desligada por padrão — uma coluna legitimamente chamada Receita.2024 não deve virar um objeto sem que você peça.
  • Qualquer profundidade — a.b.c.d aninha quatro níveis. Segmentos vazios se colapsam, então a..b equivale a a.b.
  • Nenhuma coluna se perde — Se um arquivo tem endereço e endereço.cidade, um mesmo nome não pode ser valor e objeto ao mesmo tempo. Em vez de descartar qualquer um deles, as colunas com ponto mantêm seus nomes planos originais e a ferramenta nomeia as que não conseguiu aninhar.
  • Nada é renomeado — A alternativa a manter uma coluna plana seria inventar um nome para ela, e aí o JSON deixaria de corresponder ao arquivo. Cada chave da saída é ou um cabeçalho que o arquivo continha, ou um column_N explícito para um que ele não tinha.

As opções de análise explicadas

Cada controle muda como os caracteres viram campos e como os campos viram propriedades JSON. Eles são aplicados ao arquivo conforme você os altera, então a prévia sempre mostra os ajustes atuais.

  • Delimitador — O modo automático pontua vírgula, ponto e vírgula, tabulação e barra pelo quão retangular a leitura deixa o arquivo, e não pela frequência do caractere — vírgulas dentro de campos entre aspas não distorcem o resultado. O modo manual vence arquivos teimosos.
  • Caractere de aspas — Aspas duplas são o padrão, mas existem arquivos citados com apóstrofos e arquivos sem citação nenhuma, onde um apóstrofo num nome seria lido como aspas. Uma aspa só abre um campo no início desse campo, que é o que mantém O'Brien intacto.
  • Pular linhas iniciais — Relatórios costumam trazer um título e uma linha em branco acima do cabeçalho real. Pulá-las torna a linha correta o cabeçalho, e linhas contam como linhas: um título com quebra de linha ainda é uma linha.
  • Primeira linha como chaves — Mapeia cabeçalhos para chaves JSON; desative quando o arquivo não tem cabeçalho e toda linha é dado — as colunas passam a se chamar column_1 em diante.
  • Remover espaços — Ligado por padrão, para que uma exportação de largura fixa leia ' 42 ' como o número 42. Desative quando o espaçamento de uma célula for intencional.
  • Células vazias — Uma célula vazia vira null, string vazia, ou a chave é omitida do registro. Nas formas posicionais — arrays e arrays por coluna — omitir um valor deslocaria todas as colunas seguintes, então lá a célula vazia continua null.

Quando usar cada codificação de arquivo

Se letras ou símbolos de moeda aparecem errados na prévia, escolha outro decodificador. O automático resolve quase tudo; as opções manuais são para os arquivos sobre os quais ele não tem como saber.

  • Automática — Lê a marca de ordem de bytes se o arquivo tiver uma, depois verifica se os bytes são UTF-8 válido e, se não, recorre a Windows-1252 — que é o que uma planilha em configuração ocidental escreve quando nada mais é pedido.
  • UTF-8 — Padrão para data warehouses, exportações SaaS e tudo salvo como Unicode. Uma marca UTF-8 é removida em vez de virar parte da primeira chave.
  • UTF-16LE e UTF-16BE — O que a exportação “Texto Unicode” produz. Lido como UTF-8 por engano, esse arquivo vira uma única coluna enorme de caracteres nulos.
  • Windows-1252 — Típico de CSV do Excel no Windows em localidades da Europa Ocidental, onde 0x92 é um apóstrofo tipográfico.
  • ISO-8859-1 — Um decodificador Latin-1 de verdade, em que cada byte mapeia para o ponto de código de mesmo valor. A maioria das ferramentas lista isso como opção separada e então entrega Windows-1252, porque o padrão de codificação da web trata o nome como alias — aqui é o decodificador real, para arquivos em que 0x80–0x9F são códigos de controle e não pontuação.

Conversão em lote e fusão de arquivos

Um arquivo por vez é gratuito, até 25 MB. O Pro acrescenta escala e opções de entrega — a conversão em si, e toda opção que afeta a correção, são idênticas nos dois planos.

  • Até 50 arquivos — Enfileire uma pasta de exportações e converta todas numa passada, cada uma com seu próprio delimitador, codificação e linha de cabeçalho detectados.
  • Um download ZIP — Um lote baixa como um único arquivo compactado em vez de cinquenta caixas de diálogo. Os nomes são tornados seguros para extração, de modo que um nome vindo de uma exportação não confiável não possa escrever fora da pasta em que é descompactado.
  • Fundir num só documento — Une todos os arquivos enfileirados num único array de objetos, ou num único arquivo JSON Lines. Cada arquivo é lido com sua própria linha de cabeçalho, então a terceira coluna do arquivo dois nunca é escrita sob o terceiro cabeçalho do arquivo um.
  • Todo o resto é gratuito — As cinco formas de saída, a inferência de tipos, o aninhamento, as transformações de chaves, as substituições por coluna, todas as codificações e todas as indentações estão disponíveis no plano gratuito.

Por que converter CSV para JSON?

JSON é a língua franca das APIs REST, das funções serverless e dos carregadores NoSQL. Levar CSV para JSON permite validar formatos, comparar saídas e enviar linhas para aplicativos sem reescrever parsers em cada linguagem.

  • Pronto para API e automação — Alimente a mesma estrutura em corpos fetch, ferramentas de linha de comando ou bancos de documentos.
  • Estruturado para código — Arrays e objetos mapeiam limpo para tipos de TypeScript, Python ou Go depois da conversão.
  • Tipado, então sobrevive ao trajeto — Um número JSON é um número para todo consumidor. Uma célula CSV é texto para todos eles, e cada um adivinha de um jeito diferente.
  • Comparável — JSON formatado com um valor por linha produz um diff legível, o que uma linha CSV de uma só linha não produz.

Como funciona a conversão

O arquivo é lido como bytes, decodificado com a codificação que o arquivo declara ou que você escolhe, varrido em linhas e escrito direto como texto JSON. Não há planilha intermediária nem ida e volta a um servidor.

  • Decodificar — A marca de ordem de bytes é lida primeiro e prevalece sobre a lista suspensa, porque a marca é o arquivo declarando sua codificação. Sem ela, UTF-8 válido é detectado e Windows-1252 é o recurso final.
  • Detectar e dividir — O delimitador e o caractere de aspas são pontuados juntos numa amostra, e tanto o vencedor quanto o segundo colocado são exibidos, de modo que uma decisão apertada fique visível em vez de silenciosa. Campos entre aspas podem conter delimitadores e quebras de linha.
  • Tipar — Cada célula é classificada contra uma gramática em vez de ser entregue a um parser permissivo da linguagem, que é o que mantém 007, 10-20 e +1 intactos em vez de transformá-los em 7, uma data e 1.
  • Escrever — O documento é escrito em blocos e montado como arquivo em vez de como uma única string enorme, e é por isso que um resultado de 27 MB não trava a página. A saída é byte a byte o que o serializador da própria linguagem produziria.

A conversão roda no seu dispositivo, fora da thread principal, e escreve o documento em blocos em vez de montá-lo de uma só vez — uma exportação de 10 MB converte em cerca de meio segundo e a página nunca deixa de responder.

Perguntas frequentes

Como converto CSV para JSON?

Solte um arquivo .csv, .tsv, .txt ou .psv, escolha uma forma de saída e decida se a primeira linha vira as chaves dos objetos. A prévia se atualiza a cada mudança de ajuste, então você vê o JSON exato antes de confirmar. Toque em Converter e a ferramenta produz o documento completo, que você pode copiar para a área de transferência ou baixar como arquivo .json — tudo sem que o arquivo saia do seu dispositivo.

O que “primeira linha como chaves” muda na saída?

Quando ativado, a linha de cabeçalho fornece os nomes das propriedades e cada linha seguinte vira um objeto JSON, resultando num array de registros { "coluna": "valor" } pronto para APIs. Quando desativado, a primeira linha é tratada como dado e as colunas recebem os nomes column_1, column_2 e assim por diante, de modo que nada se perde. Escolher a forma array de arrays preserva cada célula por posição — útil para dados matriciais.

Por que minhas colunas são divididas incorretamente?

Provavelmente o delimitador escolhido não corresponde ao arquivo. A detecção automática pontua vírgula, ponto e vírgula, tabulação e barra pelo quão retangular cada leitura deixa o arquivo, e não pela frequência do caractere, então uma vírgula dentro de um endereço entre aspas não distorce o resultado. Você ainda pode forçar o delimitador e o caractere de aspas (duplas, simples ou nenhuma) até as colunas se alinharem.

Quais codificações de arquivo são suportadas?

A detecção automática lê primeiro qualquer marca de ordem de bytes e recorre a UTF-8 e depois a Windows-1252. Você também pode forçar UTF-8, UTF-16LE, UTF-16BE, Windows-1252 ou ISO-8859-1. Uma marca de ordem de bytes sempre prevalece sobre a lista suspensa, porque a marca é o arquivo declarando sua própria codificação enquanto a lista é um palpite — e a ferramenta avisa quando isso acontece em vez de fazê-lo em silêncio.

Ele transforma números em números JSON reais?

Sim, e se recusa a fazê-lo onde isso destruiria informação. Um código de peça como 007 mantém seus zeros à esquerda, um número de cartão de vinte dígitos permanece string em vez de perder os últimos dígitos por arredondamento de ponto flutuante, um telefone escrito +5511987654321 mantém o sinal de mais, e Infinity e NaN continuam strings porque nenhum dos dois é JSON válido. TRUE e FALSE viram booleanos e NULL vira null. Datas continuam strings, porque JSON não tem tipo de data e qualquer conversão seria um palpite.

Ele consegue criar JSON aninhado a partir dos meus cabeçalhos?

Sim. Cabeçalhos escritos endereço.cidade e endereço.cep podem ser dobrados num objeto endereço aninhado, que é como saem as exportações da maioria dos CRMs. Cabeçalhos separados por barra funcionam do mesmo jeito. Se um arquivo tiver ao mesmo tempo uma coluna endereço e uma coluna endereço.cidade, as duas não podem ocupar o mesmo lugar num documento, então as colunas com ponto mantêm seus nomes planos originais e a ferramenta diz quais são — nenhuma coluna é descartada ou renomeada para o aninhamento funcionar.

Meu CSV é enviado para algum lugar?

Não. O arquivo é lido, analisado e escrito inteiramente no seu dispositivo, e o documento final vai direto para um download ou para a área de transferência. Isso mantém exportações confidenciais privadas, permite trabalhar offline depois de carregada a página e torna a ferramenta utilizável em celulares e tablets tanto quanto em computadores.

É gratuito e aguenta arquivos grandes?

Sim, é gratuito. O plano gratuito converte um arquivo por vez de até 25 MB, cerca de 250.000 linhas de uma exportação típica, com todas as formas de saída e todas as opções disponíveis. A conversão roda fora da thread principal, então a página continua respondendo e a prévia segue atualizando enquanto um arquivo grande é escrito. O Pro acrescenta conversão em lote de até 50 arquivos, um único download ZIP e a fusão de um lote num só documento.

4.8de 5

de 186 avaliações

Avalie esta ferramenta

Toque numa estrela — leva um segundo