CSV to JSON

Converta dados CSV para formato de array ou objeto JSON

Roda localmente · Seguro para colar segredos
O CSV aparecerá aqui…

O que é a conversão de CSV para JSON?

CSV (Comma-Separated Values) é um formato tabular em texto simples onde cada linha é um registro de dados e os campos dentro de um registro são separados por um delimitador, geralmente uma vírgula. O CSV é um formato de intercâmbio padrão desde os primórdios da computação pessoal, formalizado no RFC 4180. Planilhas, bancos de dados e ferramentas de exportação de dados produzem CSV porque ele é simples, compacto e legível por praticamente todas as linguagens de programação.

JSON (JavaScript Object Notation) representa dados estruturados como pares chave-valor e arrays ordenados. Ao contrário do CSV, o JSON suporta objetos aninhados, valores tipados (números, booleanos, null) e registros de comprimento variável. Por ser nativamente compreendido pelos motores JavaScript, o JSON é o formato dominante para troca de dados entre navegador e servidor e para respostas de APIs REST. Essas propriedades fazem do JSON o formato padrão para APIs web, arquivos de configuração e bancos de dados NoSQL como MongoDB e CouchDB.

Converter CSV para JSON significa mapear cada linha da tabela em um objeto JSON, usando a linha de cabeçalho como nomes de propriedade e os valores das células como valores de propriedade. O resultado é tipicamente um array JSON de objetos. Essa conversão é necessária sempre que você precisa alimentar dados tabulares planos em um sistema que espera entrada JSON estruturada, como uma API REST, um componente de tabela de dados no frontend ou um banco de dados orientado a documentos.

Por que usar esta ferramenta?

Este conversor analisa seu CSV no navegador, gera a saída JSON instantaneamente e nunca envia seus dados para um servidor.

Conversão Instantânea
Cole o CSV e obtenha a saída JSON imediatamente. Sem esperar pela resposta de um servidor ou envio de arquivo. A conversão acontece enquanto você digita.
🔒
Processamento com Privacidade
Seus dados ficam na aba do navegador. Nada é transmitido pela rede. Seguro para conjuntos de dados internos, credenciais ou dados pessoais que não devem sair da sua máquina.
🔀
Detecção Automática de Delimitador
A ferramenta reconhece delimitadores de vírgula, tabulação, ponto e vírgula e pipe. Você também pode definir o delimitador manualmente se seu arquivo usar um separador incomum.
📋
Copiar ou Baixar
Copie o resultado JSON para a área de transferência com um clique ou baixe-o como arquivo .json. Pronto para uso direto no seu código, cliente de API ou importação de banco de dados.

Casos de uso de CSV para JSON

Desenvolvimento Frontend
Converta uma exportação CSV de uma ferramenta de design ou planilha em JSON para usar como dados simulados em componentes React, Vue ou Angular durante a prototipagem.
Alimentação de API Backend
Transforme dumps de banco de dados em CSV em payloads JSON para alimentar uma API REST ou GraphQL. Muitos ORMs e ferramentas de migração aceitam fixtures JSON para o carregamento inicial de dados.
Configuração de DevOps
Converta listas de inventário CSV ou matrizes de ambiente em JSON para uso em playbooks do Ansible, arquivos de variáveis do Terraform ou configurações de pipelines de CI/CD.
Preparação de Dados de Teste de QA
Transforme matrizes de teste baseadas em planilhas em arrays JSON que podem ser consumidos por frameworks de teste como Jest, pytest ou Playwright para testes orientados a dados.
Pipelines de Engenharia de Dados
Converta saídas CSV de consultas SQL ou exportações de ETL em JSON para carregamento em armazenamentos de documentos como MongoDB, Elasticsearch ou o modo de ingestão JSON do BigQuery.
Projetos de Estudo e Aprendizado
Converta rapidamente conjuntos de dados CSV de exemplo (Kaggle, portais de dados abertos do governo) em JSON para uso em trabalhos de desenvolvimento web, tutoriais ou projetos pessoais.

Referência de Delimitadores CSV

Arquivos CSV nem sempre usam vírgulas. O delimitador depende do idioma do sistema, do aplicativo exportador e do conteúdo dos dados. Aqui estão os quatro delimitadores mais comuns e quando cada um é tipicamente usado:

DelimitadorPadrãoExtensãoObservações
Comma (,)RFC 4180 default.csvMost common; Excel default export
Tab (\t)TSV variant.tsvAvoids quoting fields that contain commas
Semicolon (;)European locale CSV.csvUsed where comma is the decimal separator (DE, FR, BR)
Pipe (|)Fixed-width alternative.csvRare in field values, good for messy data

CSV vs JSON: Diferenças Estruturais

A diferença entre os dois formatos é o motivo pelo qual o mapeamento de cabeçalhos, a inferência de tipos e o tratamento de valores ausentes exigem decisões explícitas durante a conversão.

CSV
Formato plano, orientado a linhas. Cada registro tem o mesmo número de campos. Todos os valores são strings, a menos que o consumidor infira os tipos. Sem suporte para aninhamento ou registros de comprimento variável. A linha de cabeçalho é opcional conforme o RFC 4180, mas necessária para uma conversão JSON significativa.
JSON
Formato estruturado em árvore e autodescritivo. Cada objeto pode ter chaves diferentes. Os valores são tipados: string, número, booleano, null, objeto ou array. Suporta profundidade de aninhamento arbitrária. A ordem das propriedades não é garantida pela especificação JSON (ECMA-404), embora a maioria dos analisadores preserve a ordem de inserção.

Exemplos de Código

Como converter CSV para JSON programaticamente em linguagens populares e ferramentas de linha de comando:

JavaScript (browser / Node.js)
// Simple CSV string → JSON array
const csv = `name,age,city
Alice,30,Berlin
Bob,25,Tokyo`

const [headerLine, ...rows] = csv.trim().split('\n')
const headers = headerLine.split(',')
const json = rows.map(row => {
  const values = row.split(',')
  return Object.fromEntries(headers.map((h, i) => [h, values[i]]))
})
// → [{ name: "Alice", age: "30", city: "Berlin" }, ...]

// With the built-in fetch + a library (Papa Parse)
import Papa from 'papaparse'
const result = Papa.parse(csvString, { header: true, dynamicTyping: true })
console.log(result.data) // typed numbers and booleans
Python
import csv, json, io

csv_string = """name,age,city
Alice,30,Berlin
Bob,25,Tokyo"""

reader = csv.DictReader(io.StringIO(csv_string))
data = [row for row in reader]
print(json.dumps(data, indent=2))
# → [{"name": "Alice", "age": "30", "city": "Berlin"}, ...]

# With type coercion (age as int)
import pandas as pd
df = pd.read_csv(io.StringIO(csv_string))
print(df.to_json(orient="records", indent=2))
# → [{"name": "Alice", "age": 30, "city": "Berlin"}, ...]
Go
package main

import (
	"encoding/csv"
	"encoding/json"
	"fmt"
	"strings"
)

func main() {
	input := "name,age,city\nAlice,30,Berlin\nBob,25,Tokyo"
	r := csv.NewReader(strings.NewReader(input))
	records, _ := r.ReadAll()

	headers := records[0]
	var result []map[string]string
	for _, row := range records[1:] {
		obj := make(map[string]string)
		for i, h := range headers {
			obj[h] = row[i]
		}
		result = append(result, obj)
	}

	out, _ := json.MarshalIndent(result, "", "  ")
	fmt.Println(string(out))
	// → [{"age":"30","city":"Berlin","name":"Alice"}, ...]
}
CLI (jq + Miller)
# Using Miller (mlr) — handles quoting, types, and edge cases
mlr --icsv --ojson cat data.csv
# → [{"name": "Alice", "age": 30, "city": "Berlin"}, ...]

# Using csvjson from csvkit (Python-based)
csvjson data.csv

# Using jq with @csv (reverse: JSON → CSV)
# For CSV → JSON, pipe through Miller or Python
cat data.csv | python3 -c "
import csv, json, sys
reader = csv.DictReader(sys.stdin)
json.dump(list(reader), sys.stdout, indent=2)
"

Perguntas Frequentes

Como o conversor lida com arquivos CSV sem linha de cabeçalho?
Se o seu CSV não tiver linha de cabeçalho, o conversor usa chaves geradas automaticamente como "field1", "field2", etc. Para melhores resultados, adicione uma linha de cabeçalho antes de converter ou renomeie as chaves na saída JSON depois.
O que acontece com campos entre aspas que contêm vírgulas ou quebras de linha?
O analisador segue as regras de citação do RFC 4180. Campos entre aspas duplas podem conter vírgulas, quebras de linha e até aspas duplas (escapadas como ""). O conversor remove as aspas externas e preserva o conteúdo interno como um único valor de string JSON.
A conversão preserva tipos de dados como números e booleanos?
CSV é um formato sem tipos; todos os valores de células são strings. Este conversor gera valores de string por padrão para evitar perda de dados. Se precisar de saída tipada, analise o resultado JSON na sua aplicação e converta os campos explicitamente. Bibliotecas como Papa Parse (JavaScript) e pandas (Python) oferecem opções de tipagem dinâmica durante a análise.
Posso converter CSV com ponto e vírgula ou tabulações em vez de vírgulas?
Sim. A ferramenta suporta delimitadores de vírgula, tabulação, ponto e vírgula e pipe. Selecione o delimitador correto no menu suspenso ou deixe a detecção automática identificá-lo. Ponto e vírgula são comuns em exportações CSV de localidade europeia do Excel, onde a vírgula serve como separador decimal.
Existe um limite de tamanho para a entrada CSV?
Como o processamento ocorre inteiramente no seu navegador, o limite prático depende da memória disponível no seu dispositivo. Arquivos de até 10-20 MB geralmente convertem sem problemas em hardware moderno. Para arquivos muito grandes (centenas de MB), use um analisador em fluxo como Papa Parse no Node.js ou o módulo csv do Python, que processam os dados linha por linha sem carregar tudo na memória.
Como lidar com linhas CSV com números diferentes de colunas?
CSVs irregulares (linhas com menos ou mais campos do que o cabeçalho) são comuns em exportações do mundo real. Este conversor preenche campos ausentes com strings vazias e ignora campos extras além da contagem do cabeçalho. Se seus dados forem consistentemente irregulares, inspecione o arquivo fonte em busca de delimitadores sem escape ou aspas ausentes.
Qual é a diferença entre a saída em array JSON e em objeto JSON?
Um array JSON de objetos é a saída padrão: cada linha CSV se torna um objeto no array, com os nomes dos cabeçalhos como chaves. Algumas ferramentas também oferecem saída "orientada a colunas", onde cada cabeçalho se torna uma chave com um array de todos os valores naquela coluna. O formato de array de objetos é mais comum para APIs, bancos de dados e vinculação de dados no frontend.