← Voltar à ferramenta JSON

JSON para CSV

Última atualização: 1 de outubro de 2026

Converta um array de objetos JSON em uma tabela CSV. Cada objeto vira uma linha, as chaves viram colunas e os campos recebem aspas como uma planilha espera. Tudo acontece no navegador: os dados não saem da máquina.

Roda no navegador Sem upload Conforme RFC 4180 BOM para Excel Código aberto (MIT)

O que a conversão faz

Um arquivo CSV é uma tabela escrita em texto simples: uma linha por registro, um delimitador entre as células e uma primeira linha com os nomes das colunas. O JSON não tem essa forma. O ponto de encontro natural é um array de objetos: cada objeto é um registro e suas chaves são os nomes dos campos. É exatamente o formato que uma API devolve para uma lista, por isso é o que este conversor aceita primeiro.

Dado [{"id":1,"name":"Ada"},{"id":2,"name":"Grace"}], a saída é uma linha de cabeçalho id,name e duas linhas, 1,Ada e 2,Grace. Fora as regras abaixo, nada é reordenado nem reescrito.

Que formas de JSON viram tabela

O detalhe da união importa. Se alguns registros têm a chave phone e outros não, o cabeçalho inclui phone e as linhas sem ela deixam a célula vazia: a coluna não é descartada. A consequência clara é que um JSON de forma irregular gera uma tabela com colunas esparsas.

Valores aninhados viram texto

Uma célula só pode conter texto, então um objeto ou array aninhado dentro de um valor é escrito como JSON compacto na célula. {"address":{"city":"London"}} vira a célula {"city":"London"}. A informação sobrevive, mas deixa de ser estruturada: este conversor não achata address.city em uma coluna com ponto. Se quiser colunas com pontos, achate o JSON antes; isso é uma decisão de modelagem, não de formatação.

Aspas, delimitadores e fim de linha

A saída segue a RFC 4180, a regra em que concordam todas as planilhas e bibliotecas de CSV:

O delimitador é escolha sua. A vírgula é o padrão, mas o ponto e vírgula é mais seguro em sistemas cujo separador decimal é a vírgula, pois um arquivo delimitado por vírgula fica ambíguo ali. A tabulação e a barra vertical servem para dados que já contêm vírgulas.

Para o Excel abrir o arquivo corretamente

O Excel não lê UTF-8 às cegas: diante de um .csv sem marca de ordem de bytes, ele adivinha a codificação e muitas vezes escolhe uma página de códigos antiga, o que transforma letras acentuadas e texto CJK em lixo. A opção BOM para Excel adiciona a marca UTF-8 de três bytes ao início do arquivo baixado para que o Excel o decodifique corretamente. Ela se aplica apenas ao download, então o texto mostrado aqui permanece limpo.

O que o CSV não consegue devolver

O CSV é um formato de texto e tem perdas. Ele esquece quais valores eram números, booleanos ou null, e achata o aninhamento em texto. Um null e uma string vazia chegam os dois como célula vazia, e um número chega como seus dígitos. Ao voltar para JSON você obtém strings, a menos que ative a detecção de tipos na outra página, e mesmo assim um código como 007 precisa continuar como string para preservar os zeros à esquerda. Guarde o JSON original quando os tipos importarem; trate o CSV como a exportação, não como a cópia principal.

Perguntas frequentes

Que forma de JSON pode ser convertida em CSV?

CSV é uma tabela, então a entrada natural é um array de objetos: cada objeto vira uma linha e suas chaves viram as colunas. Um array de arrays é usado como linhas tal como está, um objeto único vira uma linha e um array de valores simples vira uma só coluna. Qualquer outra coisa——um número ou uma string soltos, ou null——não é uma tabela e é rejeitada.

O que acontece quando os objetos têm chaves diferentes?

O cabeçalho é a união de todas as chaves que aparecem no array, na ordem da primeira ocorrência. Uma linha sem uma dessas chaves simplesmente deixa a célula vazia. É por isso que um CSV feito de JSON de forma irregular pode ter colunas vazias em quase todas as linhas.

Como objetos e arrays aninhados são tratados?

CSV não tem aninhamento, então um valor que é ele mesmo um objeto ou array é escrito como JSON compacto dentro da célula. A informação permanece, mas deixa de ser estruturada: esta conversão achata transformando em texto, não desmembra chaves aninhadas em colunas com pontos.

Quando um campo recebe aspas?

Um campo recebe aspas quando contém o delimitador, uma aspa dupla, uma quebra de linha, ou espaços no início ou no fim. Dentro de um campo entre aspas, uma aspa dupla literal é escrita duas vezes, de modo que o texto é reproduzido exatamente. Essa é a regra da RFC 4180 e é o que permite que uma célula contenha uma vírgula ou uma quebra de linha.

Por que meu CSV aparece como caracteres estranhos no Excel?

O Excel adivinha a codificação de um arquivo .csv e, sem uma marca de ordem de bytes, muitas vezes escolhe uma página de códigos antiga, o que estraga texto não ASCII, como letras acentuadas ou caracteres CJK. Marcar a opção BOM adiciona U+FEFF ao início do arquivo baixado para que o Excel o leia como UTF-8. O BOM é adicionado apenas ao download, não ao texto mostrado aqui.

A conversão de JSON para CSV é sem perdas?

Não. O CSV guarda texto, então esquece quais valores eram números, booleanos ou null, e não representa o aninhamento a não ser como texto. Ao voltar de CSV para JSON você obtém strings, a menos que ative a detecção de tipos. Guarde o JSON original se precisar recuperar os tipos exatamente.

Quer a direção contrária? CSV para JSON lê uma tabela de volta como array de objetos. Encontrou um bug? Fale conosco.