Um conversor de JSON para CSV transforma arquivos JavaScript Object Notation (JSON), hierárquicos e estruturados, em planilhas bidimensionais de valores separados por vírgula (CSV). O JSON é o padrão universal para APIs REST e bancos NoSQL, enquanto o CSV é a base para o Excel, Google Sheets e bancos relacionais. Nossa ferramenta gratuita executa toda a conversão no seu próprio navegador — sem envio de arquivos para a nuvem, sem cadastro e sem limites de tamanho.
Como converter JSON em CSV
A conversão de JSON para CSV ocorre em três etapas simples:
- Carregue seus dados JSON: Cole o texto JSON, carregue um arquivo .json ou .jsonl, ou importe de uma URL pública. O conversor processa matrizes de objetos, arrays 2D e estruturas aninhadas.
- Configure as colunas e confira a prévia: Cada campo identificado é exibido em uma tabela interativa com o tipo de dado e a taxa de preenchimento. Renomeie, reordene ou exclua colunas e selecione o delimitador desejado.
- Baixe o CSV ou Excel final: Exporte o resultado como CSV comum, CSV compatível com Excel com marcação BOM UTF-8 ou uma pasta de trabalho original Microsoft Excel .xlsx.
Converter JSON aninhado para CSV
O JSON possui estrutura em árvore (objetos dentro de objetos), enquanto o CSV é estritamente tabular (linhas e colunas). Ao converter dados aninhados, cada propriedade final se torna uma coluna nomeada pelo seu caminho completo (ex: customer.address.city). Você pode personalizar o delimitador de caminho, limitar a profundidade ou preservar nós internos como texto JSON.
Vetores e matrizes em JSON
Vetores dentro de objetos JSON não podem ser representados em uma única célula sem uma regra clara de estruturação. Oferecemos quatro estratégias:
- Uma coluna por índice: Cria colunas numeradas distintas (items.0, items.1), ideal para listas de tamanho fixo.
- Uma linha por item (Unwind): Duplica os dados do registro pai para cada item do array em linhas separadas, padrão em tabelas relacionais SQL.
- Célula concatenada: Agrupa os elementos em uma única célula entre aspas com separador customizado como ponto e vírgula (ex: "tag1; tag2").
- JSON literal bruto: Mantém ["tag1", "tag2"] como texto JSON puro dentro da célula da planilha.
Exemplo prático de conversão
Veja como dados reais de pedidos são convertidos para formato tabular:
[
{
"orderId": "ORD-2048",
"customer": { "name": "Elena Rostova", "email": "elena@example.com" },
"total": 149.50,
"status": "shipped"
},
{
"orderId": "ORD-2049",
"customer": { "name": "Marcus Vance", "email": "marcus@example.com" },
"total": 89.00,
"status": "pending"
}
]
O conversor analisa todos os registros, cria um cabeçalho uniforme com todos os atributos, desmembra o objeto aninhado customer e produz o CSV limpo:
orderId,customer.name,customer.email,total,status
ORD-2048,Elena Rostova,elena@example.com,149.5,shipped
ORD-2049,Marcus Vance,marcus@example.com,89,pending
JSON vs CSV: Principais diferenças
Entender as diferenças estruturais facilita escolher o formato mais adequado:
| Característica | JSON (JavaScript Object Notation) | CSV (Comma-Separated Values) |
|---|
| Modelo de dados | Árvore hierárquica (objetos e matrizes aninhadas) | Matriz tabular bidimensional (linhas e colunas) |
| Suporte a tipos | Strings, números, booleanos, null, arrays, objetos | Texto sem tipagem estrita (interpretadores deduzem o tipo) |
| Tamanho do arquivo | Verboso (as chaves se repetem em cada registro) | Compacto (as chaves aparecem uma só vez no cabeçalho) |
| Principais aplicações | APIs Web, bancos NoSQL, arquivos de configuração | Planilhas (Excel, Sheets), bancos SQL, ferramentas de BI |
JSON para CSV em Python com pandas ou biblioteca nativa
Para automação de rotinas em Python, a biblioteca pandas resolve o achatamento em apenas três linhas:
import json
import pandas as pd
with open("input.json", encoding="utf-8") as handle:
data = json.load(handle)
frame = pd.json_normalize(data, sep=".")
frame.to_csv("output.csv", index=False)
A biblioteca padrão do Python (módulos json e csv.DictWriter) é perfeita para ambientes sem dependências adicionais. Dica: use parse_int=str no json.load para não truncar IDs numéricos de 64 bits.
JSON para CSV em Node.js
O Node.js permite converter registros JSON planos sem a necessidade de pacotes externos:
import { readFile, writeFile } from 'node:fs/promises';
const data = JSON.parse(await readFile('input.json', 'utf8'));
const fields = [...new Set(data.flatMap((row) => Object.keys(row)))];
const cell = (value) => {
const text = value == null ? '' : String(value);
return /[",\n]/.test(text) ? '"' + text.replaceAll('"', '""') + '"' : text;
};
const csv = [fields, ...data.map((row) => fields.map((field) => row[field]))]
.map((row) => row.map(cell).join(','))
.join('\n');
await writeFile('output.csv', csv, 'utf8');
Por que esta ferramenta é gratuita e sem limites
A maioria dos conversores online faz o upload dos seus dados para servidores em nuvem, gerando custos de infraestrutura que resultam em limites ou assinaturas. O jsoncsvonline roda 100% no seu navegador usando Web Workers. Seus dados nunca saem da sua máquina. Para saber mais, veja nossos tutoriais sobre achatamento de JSON aninhado, como converter arrays JSON e compatibilidade de codificação e delimitadores no Excel.
Validação, formatação e correção de JSON antes da conversão
Garantir que a sintaxe do JSON está íntegra antes da exportação previne erros inesperados. Experimente também nosso Validador JSON conforme a RFC 8259, a ferramenta de Reparação JSON para corrigir aspas e vírgulas ausentes, nosso Formatador JSON para organizar a visualização, o comparador JSON Diff para inspecionar alterações, ou o Minificador JSON para compactar dados de produção.