Como converter CSV para JSON

· 7 min de leitura

CSV (Comma-Separated Values) e o formato mais simples para dados tabulares, cada planilha pode exporta-lo. JSON (JavaScript Object Notation) e o formato padrao para APIs web e aplicacoes modernas. Converter entre eles e uma das tarefas de dados mais comuns no desenvolvimento. Um conversor baseado em navegador lida com todo o trabalho localmente sem enviar seus dados para um servidor.

Quando voce precisa de CSV para JSON

Como o CSV se torna JSON

Um arquivo CSV:

name,age,city
Alice,30,New York
Bob,25,London

Torna-se um array JSON de objetos:

[
  {"name": "Alice", "age": "30", "city": "New York"},
  {"name": "Bob", "age": "25", "city": "London"}
]

A primeira linha (cabecalhos) se torna as chaves. Cada linha subsequente se torna um objeto.

Como converter

  1. Cole seus dados CSV: insira dados separados por virgula com uma linha de cabecalho.
  2. Escolha seu delimitador: selecione virgula, ponto-e-virgula, tabulacao ou pipe. A ferramenta detecta automaticamente na maioria dos casos.
  3. Copiar ou baixar: revise a saida JSON e copie-a para sua area de transferencia ou baixe-a como um arquivo .json.

Uma breve historia de CSV e JSON

CSV e o formato mais antigo por decadas. O conceito de texto separado por virgulas remonta aos anos 1960 e 1970 como uma forma de trocar dados entre programas mainframe. IBM Fortran (1972) suportava E/S direcionada por lista que produzia saida separada por virgulas. CSV nunca foi formalmente padronizado ate o RFC 4180 em 2005, momento em que bilhoes de arquivos CSV ja existiam com variacoes sutis (regras de citacao, finais de linha, codificacao).

JSON chegou muito mais tarde: Douglas Crockford o especificou em 2001, RFC formal 4627 em 2006, ECMA-404 em 2013. JSON foi projetado para a web; CSV foi projetado para processamento em lote de dados em mainframes. Os dois formatos tem forcas diferentes:

AspectoCSVJSON
EstruturaTabela plana (linhas + colunas)Aninhada, hierarquica
TiposSem tipo (tudo e texto)Tipado (string, numero, bool, null, array, objeto)
CabecalhosConvencao primeira linhaNomes de campo por objeto
TamanhoCompacto para dados tabularesMais verboso, inclui estrutura
FerramentasExcel, todas as planilhasCada linguagem de programacao moderna
StreamingLinha por linha facilAnalise de arquivo inteiro por padrao (mas JSON Lines existe)
Spec estritaRFC 4180 (2005), frequentemente ignoradaRFC 8259 (2017), estrita

A conversao de CSV para JSON e essencialmente uma traducao de dados planos orientados a linha em notacao de objeto chave-valor. A maior parte da dificuldade esta em lidar com casos extremos (valores entre aspas, delimitadores incorporados, codificacoes nao UTF-8) que a especificacao CSV nao previu.

Lidando com dados CSV complicados

Valores entre aspas: quando um valor contem o caractere delimitador (como um endereco com uma virgula), ele deve ser envolvido em aspas duplas: "New York, NY". Bons conversores lidam com isso corretamente.

Valores vazios: celulas vazias se tornam strings vazias em JSON ("field": ""). Se voce precisar delas como null, pode precisar pos-processar a saida.

Valores numericos: CSV nao tem tipos de dados. Tudo e texto. A saida JSON tera numeros como strings ("30" nao 30). Se sua aplicacao precisa de numeros reais, analise-os apos a conversao.

Quebras de linha em valores: alguns arquivos CSV tem valores multilinhas (entre aspas). Nem todos os conversores lidam com isso, teste com seus dados especificos.

Aspas escapadas: uma aspa dentro de um valor entre aspas e escapada duplicando-a: "Ela disse ""ola""". A maioria dos analisadores lida com isso corretamente.

Espacos a direita: espacos extras em cabecalhos como name ,age, city criam chaves desorganizadas. Bons conversores cortam por padrao; alguns preservam o espaco em branco literalmente.

Marcas de ordem de bytes: um BOM UTF-8 no inicio do arquivo pode aparecer como os primeiros tres caracteres do primeiro cabecalho. Alguns conversores removem o BOM; outros nao.

Diferentes finais de linha: arquivos CSV do Windows tem CRLF, Unix tem LF, Macs antigos tinham CR. Analisadores robustos lidam com todos os tres.

Variantes de formato de saida

Conversores de CSV para JSON frequentemente oferecem varias opcoes de saida:

SaidaExemploMelhor uso
Array de objetos[{"a":1},{"a":2}]Respostas de API, padrao
Objeto de objetos (com chave pela primeira coluna){"id1":{"name":"x"},"id2":{...}}Tabelas de pesquisa, registros com chave por ID
Array de arrays[["a","b"],[1,2],[3,4]]Dados de linha brutos preservando a ordem
Colunar{"a":[1,3],"b":[2,4]}Analise estatistica (compativel com pandas)
JSON Lines (NDJSON){"a":1}\n{"a":2}Streaming, processamento de logs
Aninhado por cabecalho[{"address":{"city":"NY"}}] de address.cityDados aninhados de CSV plano

O padrao e array de objetos, que funciona para quase todos os cenarios de API web. JSON Lines e util se voce tem milhoes de linhas e precisa de processamento em streaming.

Inferencia de tipo

Alguns conversores oferecem inferencia de tipo:

Para uso interno onde voce controla os dados, a auto-inferencia economiza tempo. Para entrada nao confiavel, deixe os tipos como strings e analise explicitamente em seu codigo.

Armadilhas comuns

Dicas

Privacidade e dados confidenciais

O conversor CSV para JSON roda inteiramente no seu navegador. Os dados que voce cola, o processamento intermediario e o JSON de saida ficam todos no seu dispositivo. Nada e enviado para um servidor, registrado ou compartilhado com ninguem.

Isso importa porque os CSVs que voce converte frequentemente contem dados sensiveis: listas de clientes com enderecos de e-mail e numeros de telefone, registros de funcionarios com salarios, transacoes financeiras, dados de pipeline de vendas, leads de marketing, analises internas de produtos, registros medicos exportados de sistemas EHR, notas de estudantes, historico de pagamentos. Conversores de CSV para JSON em nuvem registram cada colagem, as vezes os retem para «melhoria do servico», e estiveram envolvidos em vazamentos reais de dados onde listas de clientes coladas vazaram para atacantes monitorando os logs. Um conversor baseado em navegador tem exposicao zero: os dados nunca saem da sua maquina.

A conversao baseada em navegador tambem funciona offline depois que a pagina e carregada, util para processar dados em avioes, em ambientes seguros sem acesso a internet, ou em qualquer lugar onde voce nao pode ou nao deveria colar dados de clientes ou financeiros em um servico de terceiros.

Perguntas frequentes

O que acontece com a linha de cabeçalho?

A primeira linha é usada como chaves para os objetos JSON. Cada linha seguinte vira um objeto com essas chaves. Por exemplo, um cabeçalho "name,age" com uma linha "Alice,30" se torna {"name":"Alice","age":"30"}.

Quais delimitadores são suportados?

Vírgula, ponto-e-vírgula, tabulação e pipe são todos suportados. A ferramenta pode detectar automaticamente qual delimitador seus dados usam, ou você pode selecioná-lo manualmente.

Lida com vírgulas dentro de valores?

Sim. Valores envolvidos em aspas duplas (como "New York, NY") são tratados corretamente, a vírgula dentro das aspas é considerada parte do valor, não um separador.

Meus dados são enviados a um servidor?

Não. Toda a conversão acontece no seu navegador. Seus dados nunca saem do seu dispositivo.