Conversor JSON para CSV
Converta JSON para formato CSV instantaneamente. Carregue arrays ou objetos JSON, personalize delimitador e saída, baixe como CSV sem fazer upload.
Sobre o Conversor JSON para CSV
Conversor JSON para CSV é uma ferramenta online gratuita que converte dados JSON (JavaScript Object Notation) em formato CSV (Comma-Separated Values). Carregue um arquivo JSON ou cole dados JSON, escolha seu delimitador CSV e opções, e baixe o arquivo CSV convertido — tudo processado localmente no seu navegador para completa privacidade.
Como lido com JSON aninhado ao converter para CSV?
CSV é fundamentalmente plano — cada linha é uma sequência de valores escalares — enquanto JSON permite aninhamento arbitrário. O conversor oferece três estratégias. O achatamento por notação de ponto transforma {"user":{"name":"Alice","age":30}} em colunas user.name e user.age, a escolha mais comum para analítica. O achatamento como string JSON mantém o objeto aninhado como um único valor JSON entre aspas em uma coluna, útil quando você quer ida e volta do documento ou carregá-lo em um banco com tipo de coluna JSON. Explosão de array (às vezes chamada unwind, pelo operador $unwind do MongoDB) duplica a linha pai uma vez para cada item de um array aninhado, adequado quando cada elemento de array deve virar seu próprio registro. Para estruturas profundamente aninhadas ou recursivas, considere exportar para NDJSON em vez disso — a RFC 4180 nunca foi projetada para dados hierárquicos e forçar sempre perde informação.
E se meus objetos JSON tiverem chaves diferentes de um registro para outro?
Este é o problema de heterogeneidade de esquema e é a regra, não a exceção, com JSON de APIs reais. O conversor escaneia cada registro para computar a união de todas as chaves, depois emite uma única linha de cabeçalho contendo cada chave encontrada e grava um valor vazio nas células onde um registro particular não tinha valor para aquela coluna. O resultado é um CSV esparso mas retangular que qualquer planilha e importador SQL pode ler. Se quiser apenas as chaves presentes no primeiro registro (útil quando registros posteriores têm campos extras barulhentos que você quer descartar), habilite "Usar esquema do primeiro registro". Se registros tiverem formatos genuinamente incompatíveis — digamos, metade são usuários e metade são pedidos — divida a entrada em duas passagens e produza dois CSVs em vez de forçá-los juntos.
Como arrays de primitivos como ["red", "green", "blue"] são tratados?
Por padrão, um array de primitivos é juntado em uma única célula com um separador configurável (vírgula, ponto e vírgula ou pipe) — então ["red","green","blue"] vira red;green;blue se escolher ponto e vírgula. Isso mantém a contagem de linhas estável mas torna o parsing posterior no Excel desajeitado porque Excel não consegue dividir facilmente uma célula. A alternativa é a explosão de arrays: a linha é duplicada três vezes com uma cor por linha, dando uma tabela arrumada em formato longo familiar a usuários Pandas e R. Uma terceira opção são colunas indexadas: o array vira colunas colors.0, colors.1, colors.2, preservando ordem e sendo reversível, mas desperdiçando espaço quando comprimentos de array variam muito. Escolha a opção que a ferramenta posterior — Excel, SQL, dashboard BI — manipula melhor.
Por que o Excel destrói caracteres UTF-8 como é, ñ ou 中 no meu CSV exportado?
Excel para Windows historicamente abre arquivos CSV usando a página de código padrão do sistema (frequentemente Windows-1252 em locais ocidentais) em vez de UTF-8, corrompendo qualquer caractere não-ASCII. A correção padrão é prefixar uma marca de ordem de bytes UTF-8 (EF BB BF) ao arquivo — esse BOM diz ao Excel "interprete isso como UTF-8" e os caracteres renderizam corretamente. Este conversor oferece uma opção "UTF-8 com BOM" nas configurações de saída, ativada por padrão para compatibilidade. Excel moderno (365 e 2021+) e todas as versões de Excel para Mac lidam com UTF-8 sem BOM corretamente. Se você controla o fluxo do destinatário, prefira importar pelo assistente Excel "Dados → De Texto/CSV" e selecionar a página de código 65001 (UTF-8) explicitamente — esse caminho funciona em toda versão de Excel sem modificar o arquivo.

Como o conversor escapa valores que contêm vírgulas, aspas ou quebras de linha?
O conversor segue a RFC 4180 estritamente. Qualquer campo contendo o delimitador, uma aspa dupla ou uma quebra de linha (LF, CR ou CRLF) é envolvido em aspas duplas, e cada aspa dupla literal dentro do campo é duplicada. Por exemplo, a string Ela disse "vá, agora" com quebra de linha embutida é codificada como "Ela disse ""vá, agora""\n" com uma quebra de linha real dentro das aspas. Isso produz um arquivo que vai e vem fielmente por Excel, Google Sheets, LibreOffice, Pandas read_csv e PostgreSQL COPY — desde que esses leitores também sigam a RFC 4180, o que todas as ferramentas modernas fazem. Se você mira um leitor legado não conforme, pode mudar o conversor para o modo "sempre citar", que envolve cada campo incondicionalmente e é a configuração mais segura para qualquer consumidor desconhecido.
Posso escolher quais campos JSON viram colunas CSV e em qual ordem?
Sim. Por padrão as colunas aparecem na ordem em que as chaves são encontradas primeiro enquanto o conversor percorre a entrada, mas você pode sobrescrever isso completamente. O painel "Seletor de colunas" lista cada chave detectada (com caminhos de ponto para campos aninhados) e permite reordenar arrastando, ocultar colunas indesejadas e renomear cabeçalhos sem mudar o caminho JSON subjacente. Você também pode colar uma lista ordenada explícita de colunas de um modelo se precisar que a saída combine com um esquema existente como um formato de importação posterior. Renomear é puramente cosmético e o caminho JSON original é preservado internamente, então reexecutar a conversão em uma entrada atualizada produz a mesma forma de coluna.
Qual a melhor maneira de converter um arquivo JSON de vários gigabytes para CSV?
Carregar um documento JSON de vários gigabytes em um navegador esgotará a memória bem antes do conversor fazer algo útil. A abordagem correta é conversão por streaming em linha de comando: jq -r 'paths(scalars) as $p | [($p|join(".")), getpath($p)] | @csv' é uma única linha para documentos quase planos, e ferramentas como Miller (mlr --ijson --ocsv cat input.json > output.csv), DuckDB (COPY (SELECT * FROM read_json_auto('input.json')) TO 'out.csv' (FORMAT CSV)) e a biblioteca Python ijson percorrem o documento evento por evento sem materializá-lo. Se a fonte já é NDJSON (um objeto JSON por linha), simplesmente canalize por Miller ou jq linha por linha para escalabilidade quase ilimitada. Use este conversor de navegador para documentos até cerca de 50 MB; mude para streaming de linha de comando além disso.
Como preservo tipos de dados JSON como booleanos, nulls e números no CSV?
CSV não tem sistema de tipos — cada célula é texto — então o conversor escolhe representações textuais. Booleanos viram as strings literais true e false (configurável para 1/0, Sim/Não ou True/False). Null vira célula vazia por padrão; muitos importadores SQL tratam células vazias como NULL automaticamente, mas você pode optar por emitir a string literal null ou um sentinela como \N (padrão do Postgres COPY) se precisar distinguir string vazia de null na importação. Números são emitidos em sua forma decimal nativa, o que é fino para a maioria dos valores, mas inteiros grandes além de Number.MAX_SAFE_INTEGER (2^53 − 1) sofrem a perda de precisão padrão do JavaScript — se seu JSON cita inteiros grandes como strings ("id": "9007199254740993"), este conversor preserva a forma string inalterada e seu sistema posterior pode reparseá-los com BigInt.
