Abra ou cole um arquivo CSV e o JSON aparece ao lado das opções, atualizado conforme você as altera. Por padrão, todo valor continua sendo uma string, então 00731 e IDs de 20 dígitos saem exatamente como estavam; ative a detecção de números só quando uma coluna deve virar números JSON e true/false. O arquivo é convertido no seu navegador e nunca enviado a um servidor.
Como converter CSV para JSON
- Abra um arquivo
.csv,.tsvou.txt, arraste-o para a ferramenta ou cole as linhas. O delimitador e a marca de ordem de byte (BOM) UTF-8 ou UTF-16 são detectados; escolha outro delimitador ou uma codificação antiga, como Windows-1252 ou Shift_JIS, em Configurações de importação. - Escolha a Estrutura do JSON. A prévia mostra as primeiras 200 linhas exatamente como sairão no download.
- Defina Tipos de valor, Células vazias, aninhamento e recuo; depois escolha Baixar JSON ou Copiar.
Para converter vários arquivos com as mesmas configurações, escolha Lote: converter vários arquivos e selecione todos juntos: cada arquivo é convertido por vez, e os resultados são baixados em um único ZIP.
O que cada opção faz
| Array de objetos (um por linha) | Um objeto por linha, com as chaves vindas do cabeçalho: [{"sku": "00731", …}]. É a estrutura que a maioria das APIs e do código JavaScript espera. |
|---|---|
| Array de arrays (cabeçalho primeiro) | Primeiro a linha de cabeçalho, depois cada linha como uma lista. Gera o arquivo menor e mantém a ordem das colunas de forma explícita. |
| Objeto com um array por coluna | {"sku": ["00731", "00732"], …}: prático para bibliotecas de gráficos e ferramentas de data frame. |
| JSON Lines (um objeto por linha) | Um objeto JSON por linha (JSON Lines), sem um array em volta. Combina com fluxos de logs, cargas no BigQuery e processamento linha a linha. |
| Manter todos os valores como texto | Cada célula vira uma string JSON, exatamente como está escrita no arquivo. É o padrão. |
| Detectar números e true/false | Uma coluna só vira números JSON se todos os valores não vazios forem números simples que sobrevivem à conversão: sem zeros à esquerda, com no máximo 15 dígitos significativos e sem vírgula decimal. Colunas true/false viram booleanos. Datas continuam strings. |
| Células vazias | Grave "", null ou omita a chave naquele objeto. |
| Aninhar nomes de coluna com ponto | user.name e user.email viram {"user": {"name": …, "email": …}}. Se um nome for ao mesmo tempo um valor e um nível acima (user e user.name), essas colunas ficam sem aninhamento e a ferramenta avisa. |
Como os dados mais delicados são tratados
- Vírgulas entre aspas, aspas (
"") e quebras de linha dentro de um valor são lidas conforme a RFC 4180 e gravadas como escapes comuns de string JSON (\n,\"). - Os nomes do cabeçalho são usados exatamente como estão, inclusive com espaços, acentos e outros sistemas de escrita. Um cabeçalho em branco vira
Column 3; um repetido viraname (2), para que nenhum valor seja sobrescrito. - Cabeçalhos como
__proto__ouconstructorsão gravados como chaves comuns. - Uma linha com mais valores do que o cabeçalho ganha chaves extras chamadas
Column 4,Column 5…; uma linha mais curta recebe valores vazios. Nada é descartado. - A saída com tipos nunca transforma
0012em12, nem um número de pedido de 19 dígitos em um decimal arredondado: uma coluna assim continua como texto.
Solução de problemas
- Ficou tudo em uma chave só. O delimitador foi detectado errado; escolha vírgula, ponto e vírgula, tabulação ou barra vertical nas configurações de importação e abra o arquivo de novo.
- Letras acentuadas aparecem como é. O arquivo não está em UTF-8. Escolha a codificação dele (muitas vezes Windows-1252, no caso de exportações antigas do Excel salvas como “CSV (separado por vírgula)”) nas configurações de importação.
- Uma coluna de números continuou como texto. Pelo menos um valor não é um número simples, por exemplo
1,5,12 kgou um valor com zero à esquerda. Valores com vírgula decimal, comuns em planilhas brasileiras, também impedem a detecção. Pesquise a coluna no Visualizador de CSV para encontrá-lo. - O erro de aspas aponta um registro. Uma aspa aberta nesse registro nunca é fechada. Corrija no editor de CSV ou confira a exportação no sistema de origem.
Limites e privacidade
Arquivos de até 25 MB, 100.000 linhas ou 2 milhões de células abrem com prévia ao vivo. Arquivos maiores são convertidos em streaming: o arquivo é lido duas vezes em blocos (uma para conhecer as colunas e os tipos, outra para gravar), a prévia dá lugar a um aviso, e o download inclui todas as linhas. Cada arquivo de saída tem limite de 4 GB.
A conversão roda em um worker em segundo plano nesta aba, então a página continua respondendo e Cancelar interrompe o processo. O CSV nunca é enviado a um servidor.
Exemplo
Uma lista de produtos com um SKU com zero à esquerda e uma vírgula entre aspas, convertida com as configurações padrão (tudo como texto, array de objetos, recuo de 2 espaços). Com Detectar números e true/false, price vira 34.9 e in_stock vira true, enquanto sku continua "00731".
sku,name,price,in_stock 00731,"Desk lamp, brass",34.90,true 00732,Cable tidy,4.50,false
[
{
"sku": "00731",
"name": "Desk lamp, brass",
"price": "34.90",
"in_stock": "true"
},
{
"sku": "00732",
"name": "Cable tidy",
"price": "4.50",
"in_stock": "false"
}
]Perguntas frequentes
Por que os números ficam entre aspas por padrão?
Porque o CSV não tem tipos: 00731, 1.50 e 2024-03-01 são apenas texto. Manter tudo como string garante que o JSON diga exatamente o que o arquivo dizia. Escolha a detecção de números quando você sabe que uma coluna guarda quantidades.
Dá para converter JSON de volta para CSV aqui?
Ainda não. Esta página só converte CSV e TSV para JSON.
JSON Lines é o mesmo que NDJSON?
Na prática, sim: os dois significam um valor JSON completo por linha, separado por caracteres de quebra de linha.