Conversor JSON para CSV
Converta JSON para CSV no navegador. Presets RFC 4180, Excel-EU, TSV, Pipe. Achatar aninhados ou stringify. 100% privado, sem upload.
Opções · , · auto · LF · header · no BOM · flatten
O que é CSV e por que converter de JSON?
CSV (Comma-Separated Values) é o formato tabular de dados mais antigo e mais amplamente suportado na computação — todo aplicativo de planilha, todo banco de dados, toda ferramenta de analytics e a maioria das linguagens de programação têm suporte de primeira classe a CSV. JSON, por contraste, é o formato universal para respostas de API, configuração e troca de dados estruturados. Converter entre eles é uma das tarefas mais comuns na engenharia de dados: você recebe JSON de uma API ou de um banco de dados NoSQL e precisa de um CSV para carregar no Excel para análise, em uma tabela do Postgres via COPY, ou em um data warehouse no BigQuery / Snowflake. Esta ferramenta foi construída para esse caminho de conversão e lida com quatro cenários que a maioria dos conversores online estraga.
Esta ferramenta tem quatro diferenciadores importantes em comparação com conversores online típicos:
**1. Parser de Máquina de Estados RFC 4180.** CSV parece simples, mas as regras de aspas são sutis: um campo envolto em aspas duplas pode conter vírgulas, quebras de linha embutidas e aspas duplas escapadas (duplicadas, como ""). Parsers ingênuos do tipo split-por-vírgula quebram em dados do mundo real — endereços com vírgulas, campos de texto multilinha e valores entre aspas que contêm aspas. Esta ferramenta implementa um parser de máquina de estados adequado, seguindo o RFC 4180 (a especificação da IETF para CSV), tratando corretamente campos entre aspas, delimitadores embutidos, quebras de linha embutidas e aspas escapadas em todas as direções. A saída é reversível em round-trip pelo módulo csv do Python, PostgreSQL COPY, AWS S3 SELECT e qualquer parser conforme.
**2. Achatar Unidirecional / Stringify Reversível.** JSON aninhado é fundamentalmente incompatível com o formato tabular plano do CSV, e a maioria dos conversores corrompe silenciosamente os dados quando encontra um objeto ou array aninhado. Esta ferramenta dá a você uma escolha explícita: o modo Achatar emite chaves pontuadas (customer.address.city) e chaves indexadas (items.0.sku) para o layout de planilha mais limpo — legível no Excel, mas com perda para round-trips. O modo Stringify mantém arrays e objetos como JSON dentro de uma única célula — mais feio, mas totalmente reversível em round-trip: CSV → JSON → CSV produz dados idênticos quando combinado com Inferir tipos no sentido inverso. Escolha com base no seu objetivo: análise no Excel (Achatar) ou round-trips de pipeline (Stringify).
**3. Detecção de Inteiros Grandes.** O tipo Number do JavaScript usa precisão dupla IEEE 754 e arredonda silenciosamente inteiros acima de 2^53 - 1 (9007199254740991). Isso afeta JSON do mundo real: IDs snowflake do Twitter, IDs do Discord, campos Long do MongoDB e resourceVersion do Kubernetes são todos inteiros de 64 bits que excedem o intervalo seguro. A maioria das ferramentas JSON baseadas em navegador produz silenciosamente números errados sem aviso. Esta ferramenta detecta valores inteiros grandes durante a análise, mostra um banner de aviso listando os campos afetados e preserva os dígitos originais como strings na saída CSV, para que o Excel e o Google Sheets não os truncem para notação científica.
**4. 100% Privacidade Baseada no Navegador.** Seus dados JSON — que frequentemente contêm PII de usuários, exportações internas de banco de dados, chaves de API embutidas em payloads e segredos de produção — nunca saem do seu navegador. Nenhum dado é enviado a nenhum servidor, sem registros, sem analytics que capturem a entrada. Você pode verificar isso na guia de Rede do seu navegador. Esta é a única forma segura de lidar com dados sensíveis em uma ferramenta online. Veja a direção inversa clicando em Inverter ou use nosso Conversor JSON para YAML complementar quando YAML for o destino. Precisa validar JSON antes de converter? Experimente nosso Formatador JSON.
Os pontos fortes do CSV são universalidade e simplicidade: toda ferramenta o lê, os parsers são minúsculos e o formato de arquivo é legível por humanos em qualquer editor de texto. Suas fraquezas são a falta de informação de tipo (tudo é uma string até que você diga ao parser o contrário), a ausência de suporte nativo a estruturas aninhadas e peculiaridades específicas de locale (ponto e vírgula no Excel-EU, CRLF do Windows vs LF do Unix). Os pontos fortes do JSON são exatamente o oposto: tipos precisos, aninhamento nativo e uma especificação estrita que é analisada de forma idêntica em todos os lugares. A ferramenta certa depende do consumidor: humano lendo uma planilha → CSV, máquina consumindo uma API → JSON. Este conversor faz a ponte em ambas as direções.
// Input JSON
[
{ "id": 1, "name": "Alice", "role": "admin" },
{ "id": 2, "name": "Bob", "role": "editor" }
]
// Output CSV (RFC 4180 preset: comma + CRLF + no BOM)
id,name,role
1,Alice,admin
2,Bob,editor
// Same input with Stringify mode + nested data
[
{ "id": 1, "tags": ["a", "b"] }
]
// Becomes
id,tags
1,"[""a"",""b""]" Recursos Principais
Conformidade com RFC 4180
Parser estrito de máquina de estados seguindo a especificação IETF de CSV: tratamento correto de campos entre aspas, delimitadores embutidos, CR/LF embutidos e aspas duplas escapadas (duplicadas). A saída faz round-trip de forma limpa pelo csv do Python, PostgreSQL COPY e AWS S3 SELECT.
Presets Excel, TSV e Pipe
Presets de um clique para os quatro destinos mais comuns: RFC 4180 (vírgula + CRLF), Excel (ponto e vírgula + CRLF + BOM UTF-8 para locales EU), TSV (Tab + LF) e Pipe (| + LF). Alterne entre formatos sem ajustar manualmente cinco opções separadas.
Achatar ou Stringify para Dados Aninhados
Tratamento explícito de aninhados: Achatar emite chaves pontuadas (customer.address.city) para análise limpa em planilha; Stringify mantém arrays e objetos como JSON dentro de uma célula para round-trips sem perda. Escolha com base em precisar de análise no Excel ou de um round-trip de pipeline.
Detecção de Inteiros Grandes
Inteiros acima de 2^53 são detectados durante a análise e preservados como strings no CSV — IDs do Twitter, snowflakes do Discord, campos Long do MongoDB e resourceVersion do K8s permanecem exatos em vez de serem silenciosamente arredondados pelo tipo number IEEE 754 do JavaScript.
Detecção Automática de NDJSON
JSON delimitado por linha (.ndjson, .jsonl) é detectado automaticamente — cole logs em streaming, exportações de eventos de API ou saídas de data lake diretamente, sem envolver manualmente em um array. Cada linha vira uma linha no CSV.
Bidirecional com Inverter
Um botão Inverter direção alterna a conversão no lugar: a entrada vira CSV, a saída vira JSON, o texto atual é preservado. Faça o round-trip dos seus dados em ambas as direções para verificar a conversão sem perdas antes de enviá-los a um pipeline.
Exemplos
Resposta de API REST
[{"id":1,"name":"Alice Chen","email":"alice@example.com","role":"admin"},{"id":2,"name":"Bob Garcia","email":"bob@example.com","role":"editor"},{"id":3,"name":"Carol Singh","email":"carol@example.com","role":"viewer"},{"id":4,"name":"Dan Müller","email":"dan@example.com","role":"viewer"}] Saída comum de API. Com Cabeçalho ativado, você obtém um CSV tabular limpo pronto para o Excel.
API de Issues do GitHub
[{"id":1001,"title":"Bug: login redirects to 404","state":"open","labels":["bug","priority:high"],"user":{"login":"alice"}},{"id":1002,"title":"Feature: dark mode toggle","state":"open","labels":["enhancement"],"user":{"login":"bob"}},{"id":1003,"title":"Docs: update README","state":"closed","labels":["docs","good-first-issue"],"user":{"login":"carol"}}] Extraído de /repos/{owner}/{repo}/issues. Achatar ativado, cabeçalho ativado — expõe user.login como uma coluna achatada.
MongoDB mongoexport
[{"_id":{"$oid":"6634a1b2c3d4e5f600000001"},"email":"alice@example.com","metadata":{"signupDate":"2026-01-15T10:30:00Z","preferences":{"newsletter":true,"theme":"dark"}}},{"_id":{"$oid":"6634a1b2c3d4e5f600000002"},"email":"bob@example.com","metadata":{"signupDate":"2026-02-20T14:15:00Z","preferences":{"newsletter":false,"theme":"light"}}}] Formato de exportação do Mongo. Escolha o modo Stringify se você planeja fazer round-trip CSV→JSON.
Log de Eventos NDJSON
{"event":"signup","user":"alice","ts":1715000000}
{"event":"login","user":"alice","ts":1715000060}
{"event":"checkout","user":"alice","ts":1715000300} JSON delimitado por linha (.ndjson/.jsonl) é detectado automaticamente — cole o conteúdo do arquivo diretamente.
Pedidos de E-commerce Aninhados
[{"id":"ord-001","customer":{"name":"Alice Chen","email":"alice@example.com","address":{"city":"Seattle","country":"US"}},"items":[{"sku":"SKU-100","qty":2},{"sku":"SKU-205","qty":1}]},{"id":"ord-002","customer":{"name":"Bob Garcia","email":"bob@example.com","address":{"city":"Madrid","country":"ES"}},"items":[{"sku":"SKU-100","qty":1}]}] O modo Achatar emite chaves pontuadas (customer.address.city, items.0.sku). Mude para Stringify para manter arrays/objetos como JSON em uma única célula.
Resultados de Testes do Postman
[{"name":"GET /users returns 200","status":"pass","duration":142},{"name":"POST /users creates record","status":"pass","duration":287},{"name":"GET /users/999 returns 404","status":"fail","duration":98,"error":"Expected 404, got 500"},{"name":"DELETE /users/1 returns 204","status":"pass","duration":156}] Exportação de testes do Postman/Newman. Linhas com formato misto (algumas com error) são preenchidas com células vazias — você verá um aviso de notas de Schema.
Como Usar
- 1
Cole seu JSON
Insira ou cole seu JSON no campo de entrada acima. A ferramenta aceita arrays de objetos, objetos únicos e NDJSON (JSON delimitado por linha) — detectado automaticamente. Você também pode clicar em «Carregar exemplo» para experimentar uma amostra como uma resposta de API REST, exportação do MongoDB ou log de eventos NDJSON.
- 2
Escolha um preset (ou ajuste as Opções)
Clique em RFC 4180 (padrão), Excel (ponto e vírgula EU + BOM), TSV (Tab) ou Pipe para configurar um formato de destino em um clique. Abra o painel de Opções para controle fino: Delimitador, Cabeçalho, Aspas (Auto/Sempre), Quebra de linha (LF/CRLF), BOM e Aninhados (Achatar/Stringify).
- 3
Copie ou Baixe o CSV
Clique em Copiar para levar o CSV para a área de transferência, ou em Baixar para salvá-lo como arquivo .csv (.tsv com o preset TSV) pronto para o Excel, Google Sheets, PostgreSQL COPY ou qualquer pipeline de dados. Para round-trips, clique em Inverter direção para converter CSV de volta para JSON no lugar.
Armadilhas Comuns de Conversão
Valor de Nível Superior é um Primitivo
CSV é fundamentalmente tabular — linhas de campos. Um único número, string ou booleano não tem estrutura de linha/coluna para projetar. O valor JSON de nível superior precisa ser um objeto (tabela de uma linha) ou um array (tabela de múltiplas linhas). Envolva primeiro um primitivo em um objeto ou array.
42
[{"value": 42}] Array com Formato Misto (linhas com chaves diferentes)
Quando linhas em um array JSON têm chaves diferentes (algumas têm um campo error, outras não), a ferramenta une todas as chaves em todas as linhas e preenche as células ausentes com valores vazios. Um aviso de notas de Schema aparece para que você saiba que as colunas foram mescladas. Geralmente está tudo bem, mas verifique a saída se ferramentas a jusante esperarem um schema estrito.
[
{"name": "GET /users", "status": "pass"},
{"name": "GET /users/999", "status": "fail", "error": "500"}
] // Output CSV (note empty cell in row 1) name,status,error GET /users,pass, GET /users/999,fail,500
Inteiro Grande Truncado pelo Excel
IDs snowflake do Twitter, IDs do Discord e outros inteiros de 64 bits excedem o intervalo seguro do JavaScript (2^53 - 1) e perdem precisão quando JSON.parse() os lê. Mesmo que o CSV preserve os dígitos, o Excel os exibirá em notação científica por padrão. A correção é dupla: armazene IDs como strings no seu JSON antes de converter e ative o BOM (ou use o preset Excel) para que o Excel preserve a célula como texto.
{"id": 9007199254740993}
// JavaScript reads as 9007199254740992 (precision lost) {"id": "9007199254740993"}
// CSV preserves the string; Excel displays exactly Vírgula Embutida sem Aspas
Se você construir CSV à mão com um join(',') ingênuo, qualquer campo contendo uma vírgula (Smith, Jr. ou 1.234,56) quebrará os limites das colunas — o parser verá colunas a mais onde deveria haver uma. O modo Auto de Aspas desta ferramenta segue o RFC 4180 e envolve automaticamente em aspas duplas qualquer campo contendo o delimitador, aspa dupla, CR ou LF.
name,role Smith, Jr.,admin // Parser reads 3 columns: "Smith", " Jr.", "admin"
name,role "Smith, Jr.",admin // Parser reads 2 columns: "Smith, Jr.", "admin"
Arquivo Excel-EU Ilegível como CSV com Vírgula
Os locales europeus do Excel (Alemanha, França, Espanha, Itália, etc.) reservam a vírgula para o separador decimal e usam ponto e vírgula como delimitador de campo. Um CSV padrão com vírgula abre com cada linha colapsada na coluna A. A correção é o preset Excel: ele troca para ; + CRLF + BOM UTF-8 para que o Excel analise corretamente o arquivo em qualquer locale.
id,name,price 1,Alice,1,234.56 // Excel-EU mis-parses 1,234.56 as two columns
// Excel preset output: ; + CRLF + BOM id;name;price 1;Alice;1234,56 // Excel-EU reads cleanly with comma decimal
NDJSON Não Detectado (formato de entrada)
A detecção automática de NDJSON exige um valor JSON válido por linha, sem colchetes de array no início ou no fim. Se você colar um array JSON de arrays, ou se seu arquivo tiver um [ inicial e um ] final, a ferramenta o trata como um único valor JSON, não como NDJSON. Remova os colchetes envolventes e garanta que cada linha seja um objeto JSON autocontido.
[
{"event": "signup"},
{"event": "login"}
]
// Detected as a regular JSON array (works, but not NDJSON path) {"event": "signup"}
{"event": "login"}
// Each line is one JSON value — auto-detected as NDJSON Casos de Uso Comuns
- Resposta de API para Planilha
- Cole uma resposta de API REST (array de objetos de usuário/pedido/evento) e obtenha um CSV tabular limpo pronto para o Excel, Google Sheets ou Numbers. O caso de uso mais comum — analistas e PMs precisam de dados em formato de planilha; engenheiros entregam JSON do backend.
- Exportação do MongoDB para Data Warehouse
- Converta a saída JSON do mongoexport (com wrappers $oid e documentos de metadados aninhados) em CSV para carregar no BigQuery, Snowflake ou Redshift. O modo Stringify preserva o formato aninhado sem perdas quando ferramentas a jusante suportam JSON em célula.
- Triagem de Issues do GitHub
- Puxe issues de /repos/{owner}/{repo}/issues, cole o JSON e obtenha um CSV plano com id, title, state, labels e user.login como colunas. Jogue no Sheets para filtrar, ordenar e atribuir durante o planejamento de sprint.
- Revisão de Log de Eventos NDJSON
- Logs em streaming do Cloud Logging, Datadog, Vector ou do seu próprio pipeline frequentemente chegam como NDJSON (.ndjson, .jsonl). Cole o conteúdo do arquivo diretamente — detectado automaticamente — e obtenha um CSV para análise ad-hoc sem montar um pipeline ETL real.
- Extração de Pedidos de E-commerce
- Converta JSON de pedidos aninhado (customer.address.city, array items) em um CSV plano para finanças, fulfillment ou revisão de fraude. O modo Achatar produz uma coluna por campo folha, pronto para carregar no Excel para relatórios ad-hoc.
- Relatório de Testes do Postman/Newman
- Exportações de testes do Postman incluem linhas com formato misto (algumas com campos error opcionais). Cole o JSON, obtenha um CSV com todas as chaves unidas e células ausentes preenchidas — perfeito para compartilhar relatórios de testes que falharam com não-engenheiros no Sheets.
Detalhes Técnicos
- Parser de Máquina de Estados RFC 4180
- Ambas as direções usam um parser apropriado de máquina de estados finita seguindo o RFC 4180. Os estados incluem UnquotedField, QuotedField, AfterQuote, RowEnd e EndOfInput. O parser trata corretamente campos entre aspas contendo o delimitador, CR/LF embutidos dentro de campos entre aspas, aspas duplas escapadas (duplicadas, como "") e quebras de linha finais. Isso produz uma saída que faz round-trip sem perdas pelo módulo csv do Python, PostgreSQL COPY, AWS S3 SELECT e qualquer parser conforme.
- Algoritmo de Detecção de Inteiros Grandes
- Antes de passar o JSON por JSON.parse() (que arredondaria silenciosamente inteiros grandes via IEEE 754), a ferramenta executa uma varredura por regex no texto JSON bruto procurando literais inteiros fora do intervalo seguro (-2^53+1 a 2^53-1). Quando detectados, os caminhos dos campos afetados são registrados e um banner de aviso de Inteiro grande aparece abaixo da saída. O escritor de CSV então preserva esses valores como strings, garantindo precisão exata através do Excel, Google Sheets e qualquer consumidor a jusante ciente de texto.
- BOM e Codificação UTF-8 para Excel
- Toda a entrada e saída é UTF-8. O BOM UTF-8 opcional (0xEF 0xBB 0xBF) é adicionado ao início da saída quando o toggle BOM está ativado ou quando o preset Excel está selecionado. O Excel no Windows usa o BOM para detectar a codificação UTF-8 — sem ele, o Excel recorre ao locale do sistema (Windows-1252 nos EUA, Windows-1251 na Rússia, etc.) e estraga os caracteres não-ASCII. Parsers modernos (csv do Python, Pandas, jq, PostgreSQL) geralmente não precisam do BOM e podem incluí-lo como caractere perdido no início da primeira célula, então deixe o BOM desativado para pipelines que não sejam o Excel.
Melhores Práticas
- Escolha um Preset Antes de Ajustar Opções
- Os presets RFC 4180, Excel, TSV e Pipe configuram cinco opções de uma vez (delimitador, quebra de linha, modo de aspas, BOM, cabeçalho). Escolha primeiro o preset mais próximo, depois ajuste opções individuais somente se necessário — isso evita o erro comum de trocar uma opção e esquecer outra (por exemplo, mudar para ponto e vírgula, mas deixar LF, o que o Excel-EU no Windows ainda analisa errado).
- Achatar para Análise, Stringify para Round-Trips
- Use Achatar quando o destino for o Excel, o Sheets ou uma análise pontual — chaves pontuadas produzem o layout de planilha mais limpo. Use Stringify quando precisar de um round-trip CSV → JSON → CSV sem perda de dados — arrays e objetos sobrevivem como JSON dentro de uma única célula. Trocar no meio da exportação e re-executar é barato; escolha com base no consumidor.
- Use BOM Apenas para o Excel
- O BOM UTF-8 é exigido pelo Excel no Windows para detectar corretamente a codificação. Todos os outros parsers (csv do Python, Pandas, jq, PostgreSQL COPY, BigQuery) ou ignoram o BOM ou o incluem como caractere perdido no início da primeira célula, quebrando os nomes de coluna. Deixe o BOM desativado para pipelines e ative-o (ou use o preset Excel) somente quando o destino for o Excel.
- Mantenha IDs Grandes como Strings no JSON
- IDs snowflake do Twitter, IDs do Discord, campos Long do MongoDB e resourceVersion do K8s são inteiros de 64 bits que excedem o intervalo seguro do JavaScript (2^53 - 1). Armazene-os como strings JSON ("id": "9007199254740993") antes de converter — o CSV preservará os dígitos exatamente, enquanto um literal numérico seria silenciosamente arredondado por JSON.parse().
- Valide o Formato das Linhas Antes de Carregar
- Linhas com formato misto (alguns objetos com chaves que outros não têm) são mescladas com células vazias na saída, e a ferramenta mostra um aviso de notas de Schema. Para consumidores com schema estrito (BigQuery, Redshift COPY), valide se todas as linhas compartilham as mesmas chaves antes de exportar — ou trate os valores ausentes explicitamente no seu pipeline. Use nosso Formatador JSON para inspecionar primeiro o formato da entrada.
Perguntas Frequentes
O que esta ferramenta faz?
Meus dados são enviados a algum servidor?
Qual a diferença entre os modos Achatar e Stringify?
Como ele lida com inteiros grandes, como IDs do Twitter ou chaves Snowflake?
Por que o Excel está mostrando meu CSV em uma única coluna?
Há suporte para NDJSON ou JSON Lines?
O que é RFC 4180?
Por que algumas células ficam entre aspas e outras não?
Posso fazer round-trip CSV → JSON → CSV sem perda de dados?
Como obtenho um arquivo TSV?
O que acontece com entradas muito grandes?
Quais codificações são suportadas?
Ferramentas relacionadas
Ver todas as ferramentas →Decodificador e Codificador Base64
Codificação e Formatação
Decodifique e codifique Base64 online gratuitamente. Conversão em tempo real com suporte completo a UTF-8 e emoji. 100% privado — executa no seu navegador. Sem necessidade de cadastro.
Conversor CSV para JSON
Codificação e Formatação
Converta CSV para JSON no navegador. RFC 4180, inferência de tipos, cabeçalho, seguro para inteiros grandes. 100% privado, sem upload.
JSON Diff (Comparar)
Codificação e Formatação
Compare dois arquivos JSON instantaneamente no navegador. Destaque lado a lado, saída JSON Patch (RFC 6902), ignore campos ruidosos como timestamps e IDs. 100% privado, sem upload.
Formatador e Validador JSON
Codificação e Formatação
Formate, valide e embeleze JSON instantaneamente no seu navegador. Ferramenta online gratuita com validação de sintaxe, detecção de erros, minificação e cópia com um clique. 100% privado — seus dados nunca saem do seu dispositivo.
Validador JSON Schema
Codificação e Formatação
Valide JSON contra qualquer JSON Schema instantaneamente no navegador. Suporta Draft 2020-12, 2019-09 e Draft-07 com mensagens de erro com caminho preciso. 100% privado — sem upload, sem conta, gratuito.
Conversor JSON para YAML
Codificação e Formatação
Cole JSON e obtenha YAML instantaneamente. Conversão ao vivo no navegador. K8s/Compose, indentação 2/4 espaços, Norway-safe. 100% privado, sem upload.