Início · Ferramentas grátis · JSON para CSV

Converter JSON para CSV

Cole o JSON, ou solte um arquivo .json, e receba uma tabela — para baixar em CSV ou em .xlsx. A conversão aguenta o formato em que exportações reais chegam: registros dentro de uma chave data ou pedidos, objetos aninhados, registros que não têm todos os mesmos campos e NDJSON, um JSON por linha. O arquivo é lido nesta aba e não é enviado.

Ou solte um arquivo .json

Solte um .json ou .ndjson aqui e o conteúdo aparece na caixa abaixo

JSON cole aqui, ou edite o que o arquivo carregou

Você faz isso todo mês? Faça uma vez no TableDI 2, salve como trabalho e rode de novo no mês seguinte. Baixar o TableDI 2 grátis

O arquivo não é enviado. Ele é lido pelo JavaScript desta aba e nunca sai do seu computador — nenhum servidor o vê, e fechar a aba descarta os dados.

Como converter JSON para CSV

  1. Colar ou soltar o JSON. Uma resposta colada, um arquivo .json ou NDJSON com um objeto por linha. Nada é enviado.
  2. Conferir qual array foi lido. Numa resposta embrulhada, a chave usada aparece acima da tabela — data, results, pedidos, o nome que a sua API usar.
  3. Ler as colunas. Valores aninhados viram colunas com ponto, como cliente.nome; uma lista de textos vira uma célula separada por ponto e vírgula.
  4. Baixar. CSV para um script ou uma importação no banco; .xlsx se o próximo passo for o Excel.

Três motivos para um JSON não virar tabela

Um CSV é um retângulo: colunas fixas, uma linha por registro. Um JSON é uma árvore. Quase toda conversão que dá errado esbarra numa destas três coisas, e as três são decididas antes de escrever a primeira linha.

  • Os registros não estão no primeiro nível. Uma API devolve {"data": [ … ]} ou {"pedidos": [ … ]}. Converter o envelope dá uma linha larguíssima em vez de várias. Aqui o primeiro array de objetos entre as chaves do topo é usado, e o nome dele aparece acima da tabela para você conferir.
  • Os valores são aninhados. {"cliente": {"nome": "Ana", "uf": "MG"}} vira duas colunas, cliente.nome e cliente.uf — e não uma célula escrita [object Object]. Listas de objetos ganham o índice no nome (itens.0.sku, itens.1.sku).
  • Os registros não concordam nos campos. O terceiro tem uma chave que os dois primeiros não têm. As colunas são a união de todas as chaves, na ordem em que aparecem, e o que falta fica vazio — nada escorrega para a coluna errada.

Vai abrir no Excel? Baixe o .xlsx, não o CSV

Este é o ponto que muda no Brasil. O CSV gerado aqui segue o formato internacional: separado por vírgula, com ponto decimal (860.5) e codificado em UTF-8. O Excel configurado em português espera ponto e vírgula e vírgula decimal. Com dois cliques, o arquivo abre com tudo espremido na coluna A, e os acentos podem aparecer quebrados.

Esta página não gera CSV com ponto e vírgula. Se o destino é o Excel, use o botão Baixar .xlsx: os números entram como números e o Excel os mostra com a vírgula do seu sistema, sem conversão nenhuma no caminho. O CSV continua sendo o formato certo para um script, uma importação no banco de dados ou outra ferramenta — e, se precisar dele no Excel mesmo assim, importe por Dados › De Texto/CSV escolhendo a vírgula como delimitador.

NDJSON também

Logs, exportações do BigQuery e muitos webhooks gravam um JSON completo por linha, sem colchetes em volta. Como documento único isso não é JSON válido; quando a colagem não abre de uma vez, cada linha é lida separadamente antes de qualquer erro ser relatado, e a tabela avisa que leu NDJSON.

Quando o JSON está quebrado

O erro diz o que o interpretador disse e onde: uma vírgula sobrando no fim da lista, aspas simples, uma quebra de linha dentro de um texto. Esses quatro casos respondem por quase todo «JSON inválido».

Quando o mesmo endpoint vira rotina

Converter na aba resolve as primeiras vezes. Quando a mesma exportação precisa cair na mesma planilha toda semana, e alguém precisa perceber o dia em que um campo some, já não é conversão. O TableDI 2 é um aplicativo de desktop para o trabalho com arquivos que se repete a cada período: ele guarda suas fontes, suas regras e a entrega como um trabalho, e no mês seguinte você coloca os arquivos novos e roda de novo. Tudo roda na sua própria máquina.

Perguntas frequentes

Meu JSON é um objeto, não uma lista. Converte assim mesmo?

Sim. Uma resposta de API costuma ser {"data": [ … ]} — os registros estão um nível abaixo. A página procura entre as chaves do topo o primeiro array cujos itens são objetos, usa esse, e mostra acima da tabela qual chave leu. Sem array nenhum, o objeto vira um registro só.

O CSV abriu no Excel com tudo numa coluna só. O que houve?

O CSV daqui é separado por vírgula, e o Excel em português espera ponto e vírgula. A página não oferece a saída com ponto e vírgula; para o Excel, baixe o .xlsx, que abre certo em qualquer configuração regional.

Como ficam os objetos aninhados?

Viram colunas com ponto: {"cliente":{"id":7,"nome":"Ana"}} dá cliente.id e cliente.nome, sem limite de profundidade.

E os arrays dentro de um registro?

Uma lista de valores simples, como ["atacado","sp"], vira uma célula atacado; sp. Uma lista de objetos é expandida com o índice no nome da coluna, então itens.0.sku e itens.1.sku ficam em células separadas.

O meu JSON é enviado para algum servidor?

Não. O texto é interpretado pelo JavaScript desta aba e nenhuma requisição leva o conteúdo. Fechou a aba, sumiu.

Você faz isso todo mês?

No TableDI 2 você faz uma vez e salva como um trabalho. No mês seguinte, coloca os arquivos novos e roda de novo.

macOS, Apple Silicon e Intel; a versão para Windows está a caminho (o que fazer até lá). Grátis não é teste — sem conta, sem cartão.

Revisado em 2026-09-11 pela equipe do TableDI. Algo errado nesta página? Escreva para nós — é uma caixa de entrada só, lida por quem constrói o TableDI.