A conversão de JSON para CSV transforma dados estruturados do formato JSON em valores separados por vírgula — um formato tabular que planilhas, bancos de dados e ferramentas de análise consomem nativamente. O JSON armazena dados como objetos e arrays aninhados sem esquema fixo. O CSV armazena dados em linhas e colunas, com uma linha de cabeçalho definindo os nomes dos campos. Essa conversão é o caminho pelo qual dados de API chegam às planilhas e bancos de dados.
O CSV (Comma-Separated Values) é definido pela RFC 4180. Cada linha é um registro, e os campos dentro de uma linha são separados por um caractere delimitador, mais comumente uma vírgula. Campos que contenham o delimitador, aspas duplas ou quebras de linha devem ser colocados entre aspas duplas, com as aspas internas escapadas duplicando-as. Esse escape é a principal fonte de bugs ao escrever um conversor de JSON para CSV manualmente.
A conversão é direta quando a entrada é um array plano de objetos com chaves consistentes. Cada objeto se torna uma linha, e cada chave única se torna um cabeçalho de coluna. Objetos aninhados e arrays exigem uma etapa de achatamento, e chaves inconsistentes entre os objetos requerem uma estratégia para tratar campos ausentes — normalmente deixando a célula vazia. Um conversor confiável lida com todos esses casos automaticamente.
Por que Converter JSON para CSV?
APIs retornam JSON, mas planilhas, bancos de dados SQL e ferramentas de BI esperam dados tabulares. Converter JSON para CSV permite mover dados entre esses sistemas sem escrever scripts de importação personalizados.
⚡
Conversão Instantânea no Navegador
Cole seu JSON e baixe o arquivo imediatamente. Sem upload para servidor, sem limites de tamanho de APIs externas, sem aguardar filas de processamento.
🔒
Processamento com Privacidade em Primeiro Lugar
Seus dados ficam no seu navegador. A conversão ocorre inteiramente em JavaScript no seu dispositivo. Exportações de banco de dados, registros de usuários e dados financeiros nunca saem da sua máquina.
🔀
Suporte a Múltiplos Delimitadores
Escolha entre vírgula, ponto e vírgula, tabulação ou pipe como delimitador. Use ponto e vírgula para planilhas com localização europeia, tabulação para arquivos TSV, ou pipe para importações em sistemas legados.
📋
Sem Conta Necessária
Abra a página e converta. Sem cadastro, sem chave de API, sem instalação de CLI. Funciona em qualquer dispositivo com um navegador moderno.
Casos de Uso: JSON para CSV
Exportação de Dados de API para Planilhas
APIs REST retornam JSON. Gerentes de produto e analistas precisam desses dados no Excel ou Google Sheets. Converta a resposta da API para CSV e abra diretamente em qualquer aplicativo de planilha.
Importação em Massa em Bancos de Dados
O PostgreSQL COPY, o MySQL LOAD DATA e o SQLite .import aceitam CSV. Converta seu conjunto de dados para formato tabular e faça carga em massa sem escrever um script de importação personalizado.
Prototipagem de Pipelines ETL
Pipelines ETL frequentemente têm saídas intermediárias difíceis de inspecionar como JSON bruto. Converta a saída de uma etapa para CSV e abra em uma planilha para verificar as transformações antes de conectar o pipeline completo.
Preparação de Dados de Teste para QA
Engenheiros de QA geram fixtures de teste como JSON, mas muitos frameworks de teste e ferramentas de testes orientados por dados aceitam CSV para entradas de testes parametrizados. Converta as fixtures para CSV sem reformatação manual.
Análise de Logs e Relatórios
Logs JSON estruturados de aplicações e serviços de nuvem podem ser convertidos para CSV para importação em ferramentas de BI como Tableau, Power BI ou Looker para visualização e relatórios.
Processamento de Dados Acadêmicos
Estudantes e pesquisadores que trabalham com APIs de dados abertos recebem respostas JSON. Converter para CSV permite análise no R, pandas, SPSS ou Excel sem escrever código de análise.
Referência de Delimitadores CSV
O caractere delimitador separa os campos dentro de cada linha. A vírgula é a mais comum, mas outros delimitadores são padrão em contextos específicos. Escolher o delimitador errado faz os campos se mesclar ou dividir incorretamente quando o arquivo é aberto.
Delimitador
Caractere
Extensão
Quando Usar
Comma
,
.csv
Default for most spreadsheets and databases
Semicolon
;
.csv
Standard in locales where comma is a decimal separator (DE, FR, BR)
Tab
\t
.tsv
Avoids escaping when field values contain commas or semicolons
Pipe
|
.csv
Used in fixed-width legacy systems and some ETL pipelines
Tratando JSON Aninhado no CSV
CSV é um formato plano sem maneira nativa de representar objetos ou arrays aninhados. Quando seu JSON contém estruturas aninhadas, o conversor deve achatá-las em colunas. Existem várias estratégias, e a escolha certa depende de como o CSV será consumido.
Achatamento por Notação de Ponto
Chaves aninhadas são unidas com pontos: {"address": {"city": "São Paulo"}} se torna uma coluna chamada address.city com o valor São Paulo. Essa é a abordagem mais comum e funciona bem com ferramentas que suportam referências a campos aninhados.
Colunas com Índice de Array
Arrays são expandidos em colunas numeradas: {"tags": ["a", "b"]} se torna tags.0 = a, tags.1 = b. Isso preserva todos os valores, mas cria muitas colunas quando os arrays são grandes.
Serialização como String JSON
Valores aninhados complexos são serializados como strings JSON dentro da célula CSV: a célula contém o texto JSON bruto. Isso preserva a estrutura completa, mas exige que o consumidor analise o valor da célula.
Ignorando Campos Aninhados
Alguns conversores descartam objetos e arrays aninhados inteiramente, mantendo apenas campos escalares (string, número, booleano, null). Isso produz um CSV limpo, mas perde dados. Útil apenas quando você sabe que os campos aninhados não são necessários.
Exemplos de Código
Converter JSON para CSV programaticamente requer tratar a extração de cabeçalhos, aspas em campos e escape de delimitadores. A maioria das linguagens tem suporte nativo ou de biblioteca padrão para escrita de CSV.
# Using jq to convert JSON array to CSV
echo '[{"name":"Alice","age":30},{"name":"Bob","age":25}]' | \
jq -r '(.[0] | keys_unsorted) as $k | $k, (.[] | [.[$k[]]] ) | @csv'
# → "name","age"
# → "Alice",30
# → "Bob",25
# Using Miller (mlr) for streaming conversion
echo '[{"name":"Alice","age":30}]' | mlr --json --ocsv cat
# → name,age
# → Alice,30
Go
package main
import (
"encoding/csv"
"encoding/json"
"fmt"
"os"
)
func main() {
jsonStr := `[{"name":"Alice","age":30},{"name":"Bob","age":25}]`
var data []map[string]interface{}
json.Unmarshal([]byte(jsonStr), &data)
w := csv.NewWriter(os.Stdout)
// Write header
headers := []string{"name", "age"}
w.Write(headers)
// Write rows
for _, row := range data {
record := make([]string, len(headers))
for i, h := range headers {
record[i] = fmt.Sprintf("%v", row[h])
}
w.Write(record)
}
w.Flush()
// → name,age
// → Alice,30
// → Bob,25
}
Perguntas Frequentes
Qual estrutura JSON este conversor espera?
O conversor espera um array JSON de objetos, como [{"name":"João"},{"name":"Camila"}]. Cada objeto no array se torna uma linha na saída, e as chaves do objeto se tornam cabeçalhos de coluna. Um único objeto JSON (não encapsulado em um array) é tratado como uma tabela de uma linha.
Como objetos e arrays aninhados são tratados?
Valores aninhados são achatados usando notação de ponto. Por exemplo, {"address":{"city":"São Paulo"}'} produz uma coluna chamada address.city. Arrays são expandidos em colunas indexadas (tags.0, tags.1). Isso preserva os dados mantendo a saída plana.
O que acontece quando os objetos têm chaves diferentes?
O conversor coleta todas as chaves únicas de todos os objetos do array e as usa como cabeçalhos de coluna. Objetos sem uma determinada chave recebem uma célula vazia nessa coluna. Nenhum dado é perdido, e a ordem das colunas segue a ordem em que as chaves aparecem pela primeira vez.
Posso usar ponto e vírgula ou tabulação em vez de vírgula?
Sim. A ferramenta suporta vírgula, ponto e vírgula, tabulação e pipe como delimitadores. Use ponto e vírgula quando seus dados ou localização usam vírgulas como separadores decimais (comum em planilhas alemãs, francesas e brasileiras). Use tabulação para arquivos TSV consumidos por ferramentas Unix.
A conversão é sem perdas?
Para arrays JSON planos com valores escalares consistentes, sim. O arquivo de saída contém os mesmos dados e pode ser convertido de volta para um JSON idêntico. Para estruturas aninhadas, o achatamento altera a forma dos dados. Valores de array serializados em colunas indexadas ou strings JSON podem ser reconstruídos, mas o processo inverso requer conhecer a estrutura original.
Qual o tamanho máximo de arquivo JSON que posso converter?
A ferramenta roda no seu navegador e processa dados em memória — arquivos de até 10–20 MB convertem sem problemas em dispositivos modernos. Para arquivos maiores, use uma ferramenta CLI como jq, Miller, ou um script Python com o módulo csv, que processam os dados como stream.
É seguro colar dados sensíveis nesta ferramenta?
Sim. Todo o processamento ocorre no seu navegador usando JavaScript. Nenhum dado é enviado a nenhum servidor. Você pode confirmar isso abrindo as ferramentas de desenvolvedor do seu navegador e verificando a aba Rede durante a conversão.