Conversor de JSON para CSV online
O conversor de JSON para CSV transforma uma lista de objetos JSON em uma tabela, com uma linha para cada objeto e uma coluna para cada chave. Você escolhe o separador (vírgula, ponto e vírgula ou tabulação), pode achatar objetos aninhados e baixar o resultado. A conversão é feita no seu navegador, sem enviar os dados a nenhum servidor.
A conversão é feita no seu navegador. Os dados e os arquivos não são enviados a nenhum servidor.
Achou um resultado errado ou tem uma sugestão? Avise por e-mail.
Como usar
- Cole o JSON no campo da esquerda, ou clique em Abrir arquivo. Ele deve ser uma lista de objetos.
- Escolha o separador. Para abrir no Excel em português, use ponto e vírgula.
- Deixe marcado Achatar objetos aninhados se quiser uma coluna para cada campo interno (por exemplo, endereco.rua).
- Clique em Copiar resultado ou em Baixar arquivo.
Como funciona
A primeira linha do CSV traz os nomes das colunas, que são as chaves de todos os objetos, na ordem em que aparecem. Se um objeto não tem uma das chaves, a célula fica vazia. Valores nulos também viram células vazias.
O CSV é uma tabela plana, então o que é aninhado precisa de um tratamento. Com a opção de achatar, um objeto dentro de outro vira colunas com o nome unido por ponto, como endereco.rua. Listas, e objetos quando a opção está desligada, são gravados como JSON dentro da célula.
Células com o separador, aspas, quebra de linha ou espaços nas pontas vão entre aspas, e as aspas internas são duplicadas, como manda a RFC 4180. O CSV não guarda tipos: números, textos e booleanos ficam todos como texto, e ao ler de volta é preciso decidir quais colunas são números.
Exemplo
JSON: [{"nome":"Ana","end":{"cidade":"Recife"}},{"nome":"Bia","idade":25}]
CSV:
nome,end.cidade,idade
Ana,Recife,
Bia,,25
Em código
Para gerar em código um CSV que o Excel em português abre certo, use ponto e vírgula, vírgula decimal e o BOM no início do arquivo.
// Monta um CSV que o Excel em português abre certo: ponto e vírgula, vírgula
// decimal e BOM para reconhecer o UTF-8
function csvParaExcel(linhas) {
const colunas = Object.keys(linhas[0]);
const celula = (v) => {
const s = v == null ? '' : typeof v === 'number' ? String(v).replace('.', ',') : String(v);
return /[;"\r\n]/.test(s) ? `"${s.replace(/"/g, '""')}"` : s;
};
const texto = [colunas, ...linhas.map((l) => colunas.map((c) => l[c]))]
.map((campos) => campos.map(celula).join(';'))
.join('\r\n');
return '' + texto;
} import csv
def ler_csv_excel(caminho: str) -> list[dict]:
# utf-8-sig ignora o BOM que o Excel grava no começo do arquivo
with open(caminho, encoding="utf-8-sig", newline="") as f:
return list(csv.DictReader(f, delimiter=";"))
def escrever_csv_excel(caminho: str, linhas: list[dict]) -> None:
with open(caminho, "w", encoding="utf-8-sig", newline="") as f:
w = csv.DictWriter(f, fieldnames=list(linhas[0]), delimiter=";")
w.writeheader()
w.writerows(linhas) Escreve e lê CSV do Excel, com o BOM.
<?php
function lerCsvExcel(string $caminho): array
{
$f = fopen($caminho, 'r');
if (fread($f, 3) !== "\xEF\xBB\xBF") {
rewind($f); // não tinha BOM: volta ao começo
}
$cabecalho = fgetcsv($f, null, ';', '"', '');
$linhas = [];
while (($campos = fgetcsv($f, null, ';', '"', '')) !== false) {
if ($campos !== [null]) { // pula linhas em branco
$linhas[] = array_combine($cabecalho, $campos);
}
}
fclose($f);
return $linhas;
} Lê o CSV salvo pelo Excel.
Perguntas frequentes
Como abrir o CSV no Excel com os acentos certos?
Use o botão Baixar arquivo, que grava o CSV em UTF-8 com a marca BOM, e o Excel reconhece os acentos. Se copiar e colar o texto em um arquivo seu, salve em UTF-8 com BOM ou importe pela opção de dados de texto/CSV, escolhendo a codificação UTF-8.
Por que o Excel abre tudo em uma coluna só?
Porque o Excel em português espera ponto e vírgula como separador, já que a vírgula é o separador decimal. Escolha Ponto e vírgula na lista de separadores e gere o CSV de novo.
O que acontece com listas e objetos dentro do JSON?
Objetos aninhados viram colunas com nomes como endereco.rua, se a opção de achatar estiver marcada. Listas são gravadas como JSON dentro de uma célula, porque uma tabela plana não tem como representar vários valores em um campo.
Posso usar o CSV gerado com dados de terceiros sem cuidado?
Com cuidado. Planilhas podem executar como fórmula uma célula que começa com =, +, - ou @. Se os dados vêm de fora, revise essas células antes de abrir o arquivo no Excel ou no Google Planilhas. A ferramenta não altera o conteúdo das células.
Outras ferramentas que podem ajudar
- Conversor CSV para JSONConverta CSV em JSON online: detecta o separador (vírgula ou ponto e vírgula) e usa o cabeçalho como chaves
- Formatador JSONFormate, indente, minifique e valide JSON online
- Validador JSONValide JSON online e veja a linha e a coluna do erro, o tipo e a profundidade
- Conversor de Timestamp UnixConverta timestamp Unix (segundos ou milissegundos) em data e hora, e data em timestamp
- Testador de RegexTeste expressões regulares online: destaque dos casamentos, grupos e flags
- Comparador JSONCompare dois JSON online e veja o caminho de cada chave adicionada, removida ou alterada