ToolActToolAct

Conversor de CSV para JSON

Faça upload de um arquivo CSV ou cole os dados para converter para o formato JSON

Solte o arquivo CSV aqui, ou clique para selecionar

O que é CSV para JSON?

CSV para JSON é uma ferramenta online de conversão de formato de dados que converte dados CSV (valores separados por vírgulas) para o formato JSON (notação de objetos JavaScript).

CSV é um formato de dados tabular comum, amplamente utilizado em planilhas e exportações de bancos de dados. JSON é o formato de troca de dados mais popular em aplicações web modernas, conhecido por sua estrutura clara e fácil análise.

Com esta ferramenta, você pode converter rapidamente dados CSV em arrays ou objetos JSON para uso em programação e processamento de dados.

Como usar

Como usar

  1. Cole ou digite dados CSV no painel de entrada à esquerda
  2. Selecione o delimitador adequado (vírgula é o padrão)
  3. Escolha se a primeira linha deve ser usada como nomes de campo
  4. O painel à direita gera automaticamente o resultado em JSON

Notas sobre análise de CSV

  • Verifique o delimitador, o tratamento de aspas e as configurações de linha de cabeçalho antes de confiar na saída JSON.
  • Arquivos CSV grandes podem conter linhas em branco, vírgulas embutidas ou quebras de linha dentro de células entre aspas. Visualize algumas linhas após a conversão.

Casos de uso

Converter arquivos CSV ou TSV carregados em arrays JSONArraste ou selecione um arquivo .csv, .tsv ou .txt, escolha o delimitador vírgula, tabulação, ponto e vírgula ou barra vertical, e decida se a primeira linha deve virar chaves de objeto ou se a saída deve permanecer como arrays. O arquivo é lido no navegador com FileReader, analisado localmente com um tokenizador em streaming e nunca é enviado, então exportações de clientes ou dados internos nunca saem do dispositivo.
Visualizar contagem de linhas e campos antes de usar o JSONUse o nome do arquivo exibido, contagem de linhas, contagem de campos e a saída JSON destacada para capturar erros de delimitador, cabeçalhos ausentes ou linhas vazias antes de copiar para mocks ou scripts. Isso funciona bem como uma etapa intermediária controlada: cole a saída no destino real e verifique se o sistema de destino a interpreta da mesma forma.
Lidar com CSV simples entre aspas sem sair do navegadorO analisador suporta campos entre aspas, aspas duplas escapadas e os quatro delimitadores comuns, sendo adequado para pequenas exportações e dados de teste. Os arquivos são processados inteiramente na memória do navegador, então até snapshots sensíveis de RH, finanças ou staging podem ser reformulados sem enviar os dados pela rede.
Preservar informações de tipo ao enviar JSON para uma API tipadaApós a conversão, verifique a saída em busca de campos que deveriam ser números, booleanos, datas ou nulls em vez de strings, e faça o pós-processamento do array antes de enviar para endpoints REST ou GraphQL. CSV não possui tipos nativos, então uma varredura visual rápida das primeiras linhas geralmente é suficiente para capturar IDs entre aspas e códigos com zeros à esquerda.
Identificar linhas malformadas antes de enviar para mocks ou fixturesUse a contagem de linhas/campos e erros de análise para sinalizar linhas que não correspondem à contagem esperada de colunas, e corrija o CSV de origem em vez de deixar linhas inválidas vazar para o JSON de mock. O painel de visualização para na primeira linha inconsistente para que você possa corrigir o delimitador ou adicionar uma aspa ausente antes de executar novamente.

Princípio técnico

A análise de CSV segue a gramática IETF RFC 4180: cada registro termina com CRLF (alguns dialetos aceitam LF ou CR), cada registro contém campos separados por um delimitador (vírgula na RFC, mas TSV, ponto e vírgula e pipe são variantes amplamente utilizadas), e qualquer campo que contenha o delimitador, um CR, um LF ou uma aspa dupla DEVE ser envolvido em aspas duplas com aspas internas escapadas por duplicação (Hello "world" se torna "Hello ""world"""). O analisador desta página é uma máquina de estados com quatro estados — field_start, in_unquoted, in_quoted, after_quote — e processa a entrada em uma única passagem O(n) sobre o fluxo de caracteres, de modo que um CSV de 10 MB com 100.000 linhas é concluído bem menos de um segundo em um laptop típico, sem nunca alocar um array de tokens intermediário por linha. A codificação requer tratamento explícito: um BOM UTF-8 (EF BB BF) no início do arquivo é removido antes da análise, caso contrário o primeiro nome de cabeçalho começaria silenciosamente com o ponto de código invisível U+FEFF e as verificações de igualdade do JSON.parse downstream falhariam. Exportações do Excel no Windows ainda emitem CRLF e frequentemente UTF-8 com BOM, enquanto o Numbers do macOS e a maioria das ferramentas Unix usam LF sem BOM por padrão. Planilhas europeias comumente exportam arquivos delimitados por ponto e vírgula porque a vírgula é um separador decimal em muitas localidades (49,90 EUR em vez de 49.90), por isso o seletor de delimitador tem vírgula como padrão, mas expõe tabulação, ponto e vírgula e pipe como escolhas de primeira classe. A alternância primeira-linha-como-cabeçalho altera o formato de saída de um array de objetos (chaves de cabeçalho -> valores string) para um array de arrays, correspondendo aos dois padrões comuns de ingestão para código downstream. Os valores dos campos são emitidos como strings, não como tipos inferidos — CSV não possui esquema, então 01234 (um ID com zero à esquerda), 1e10 (uma string com aparência de número de telefone que o JSON.parse converteria para número) e 2024-13-45 (uma data malformada) todos permanecem inalterados. Isso é intencional: uma API tipada downstream pode aplicar zod, Joi ou uma camada de coerção manual com regras explícitas, mas não pode recuperar um zero à esquerda que o conversor já removeu. A saída é gerada via JSON.stringify(rows, null, 2) e renderizada através de um realçador de sintaxe; o CSV de origem é lido com FileReader.readAsText() em um Blob, nunca enviado a um backend, então exportações de RH, registros financeiros e listas de clientes podem ser reformulados sem sair da sessão do navegador.

  • Gramática RFC 4180: campos com delimitador/CR/LF/" devem ser colocados entre aspas; aspas internas são duplicadas como "".
  • Máquina de estados O(n) de passagem única com estados: field_start, in_unquoted, in_quoted, after_quote.
  • BOM UTF-8 (EF BB BF / U+FEFF) é removido no início do arquivo para manter as chaves de cabeçalho limpas.
  • Planilhas europeias frequentemente usam ; como delimitador porque , é a marca decimal nas configurações de localidade.
  • Primeira-linha-como-cabeçalho alterna a saída entre Array<Record<string,string>> e Array<Array<string>>.
  • Todos os valores de campo permanecem strings; IDs com zero à esquerda como 01234 sobrevivem apenas porque nenhuma inferência de tipo é executada.
  • FileReader.readAsText() processa o Blob localmente; nada é enviado - seguro para exportações de RH/finanças/staging.

Exemplos

CSV básico com cabeçalho -> array JSON de objetos

CSV input:
name,age,city
Alice,28,New York
Bob,35,London
Carol,42,Tokyo

JSON output:
[
  { "name": "Alice", "age": "28", "city": "New York" },
  { "name": "Bob",   "age": "35", "city": "London"   },
  { "name": "Carol", "age": "42", "city": "Tokyo"    }
]

Campos entre aspas com vírgulas internas

CSV input:
id,product,description
1,"Notebook, A5","Hard cover, 200 pages"
2,Pen,"Black ink, 0.5mm"

JSON output:
[
  { "id": "1", "product": "Notebook, A5", "description": "Hard cover, 200 pages" },
  { "id": "2", "product": "Pen",          "description": "Black ink, 0.5mm" }
]

TSV (delimitado por tabulação) sem cabeçalho

TSV input (delimiter = Tab, header off):
101	Alice	98.5
102	Bob	87.0
103	Carol	92.3

JSON output:
[
  ["101", "Alice", "98.5"],
  ["102", "Bob",   "87.0"],
  ["103", "Carol", "92.3"]
]

Delimitador ponto e vírgula (exportações de planilhas europeias)

CSV input (delimiter = ;):
product;price_eur;stock
Keyboard;49,90;120
Mouse;19,90;345

JSON output:
[
  { "product": "Keyboard", "price_eur": "49,90", "stock": "120" },
  { "product": "Mouse",    "price_eur": "19,90", "stock": "345" }
]
Note: números permanecem como strings - faça o cast no seu código posterior.

Perguntas frequentes

Quais variantes de CSV são suportadas?

CSV padrão RFC 4180: separador por vírgula, campos entre aspas duplas e aspas duplas duplicadas para escape. Separadores por tabulação (TSV) e ponto e vírgula funcionam mudando o separador. Diferentes terminadores de linha (LF/CRLF/CR) são tratados automaticamente.

Como os cabeçalhos são tratados?

Se você ativar 'a primeira linha é cabeçalho', o parser usa cada célula do cabeçalho como chave JSON daquela coluna — produzindo um array de objetos. Com cabeçalhos desativados, o parser produz um array de arrays. Células de cabeçalho vazias recebem uma chave numérica como placeholder.

Como os tipos são inferidos?

Por padrão, tudo é string. Ative 'auto type' para tentar interpretar números, booleanos (true/false) e null. Números com zeros à esquerda (00123, 0042) viram strings para não perder o prefixo — use isso para IDs e CEPs.

E se um campo contém vírgula ou quebra de linha?

Coloque o campo entre aspas duplas: "Smith, John" ou "linha um\nlinha dois". Aspas duplas embutidas ficam duplicadas: "Ele disse ""oi""". O parser lida com tudo isso; se uma linha estiver quebrada, geralmente é por causa de aspas desbalanceadas.

A conversão é feita localmente ou em servidor?

Localmente. O parsing roda no seu navegador usando JavaScript. O CSV colado não sai da página. Arquivos grandes podem deixar o navegador lento; se uma colagem ultrapassar dezenas de MB, divida antes de processar.

Preserva a ordem das colunas?

Sim — cada linha vira um objeto JSON cuja ordem das chaves segue a ordem dos cabeçalhos do CSV, e JSON.stringify nas engines modernas preserva a ordem de inserção. Se sua ferramenta seguinte ler JSON sem preservar essa ordem, é uma limitação dela.

Como lido com datas?

As datas continuam como strings. A inferência automática não interpreta formatos arbitrários de data porque não há padrão sem ambiguidade (1/2/2024 é 2 de janeiro nos EUA e 1 de fevereiro na Europa). Converta as datas para ISO 8601 (YYYY-MM-DD) antes de importar se você precisar de objetos Date nativos depois.