BrowserTools
Início / Conversores / JSON para CSV

JSON para CSV

Transforma dados JSON num ficheiro CSV que podes abrir no Excel ou no Google Sheets.

A carregar JSON para CSV… Se nada acontecer, ativa o JavaScript.

Cola um array JSON de objetos, ou larga um ficheiro .json em qualquer ponto da ferramenta, e obtém de imediato um ficheiro CSV pronto a usar. O conversor deteta automaticamente as colunas através da união de todas as chaves encontradas em todos os objetos, pelo que registos com campos diferentes ou em falta ficam alinhados corretamente: os valores ausentes tornam-se simplesmente células vazias. A tabela de pré-visualização mostra as primeiras 20 linhas exatamente como vão aparecer na tua folha de cálculo, e um contador de linhas e colunas confirma num relance o tamanho do resultado.

Perguntas frequentes

Que estrutura JSON é que o conversor aceita?
Um array de objetos no nível de topo, por exemplo [{"name": "Alice", "age": 30}, {"name": "Bob"}]. Cada elemento torna-se uma linha do CSV. Se o valor de topo for um objeto, uma string ou um número, ou se algum elemento do array não for um objeto, a ferramenta mostra um erro claro a explicar exatamente o que encontrou em vez disso.
Como são tratados os objetos aninhados?
São achatados com notação de pontos. Um objeto como {"address": {"city": "Lisbon", "zip": "1000"}} produz duas colunas, address.city e address.zip. O achatamento funciona a qualquer profundidade, pelo que respostas de API profundamente aninhadas se convertem sem pré-processamento manual.
Como são tratados os arrays dentro dos objetos?
Cada elemento recebe a sua própria coluna com um índice entre parênteses retos: {"tags": ["admin", "dev"]} torna-se as colunas tags[0] e tags[1]. Arrays de objetos combinam as duas regras, pelo que items[0].price e items[1].price aparecem como colunas separadas. As linhas com arrays mais curtos deixam as colunas extra vazias.
O que acontece quando os objetos têm chaves diferentes?
O conjunto de colunas é a união de todas as chaves encontradas em todos os objetos, pela ordem da primeira ocorrência. Um objeto a que falte uma chave recebe simplesmente uma célula vazia nessa coluna, pelo que dados heterogéneos (comuns em exportações NoSQL e registos de API) se convertem de forma limpa sem perder nenhum campo.
Quando devo escolher o delimitador de ponto e vírgula?
Quando o ficheiro se destina ao Excel numa configuração regional europeia (Portugal, Espanha, França, Alemanha e outras), onde a vírgula é o separador decimal e o Excel espera CSV separado por ponto e vírgula. Para a maioria das outras ferramentas, incluindo o Google Sheets e as bibliotecas de programação, a vírgula padrão é a escolha segura. A tabulação é útil para colar diretamente numa folha de cálculo.
O que faz a opção de aspas em todos os campos?
Por omissão, os campos só são envolvidos em aspas duplas quando contêm o delimitador, uma aspa ou uma quebra de linha, que é o estilo mínimo do RFC 4180. A opção de aspas em tudo envolve cada campo em aspas, algo que alguns importadores rigorosos, sistemas antigos e pipelines de dados exigem. Ambos os modos escapam as aspas internas duplicando-as.
Como são escapados carateres especiais como aspas e quebras de linha?
Seguindo a convenção RFC 4180: qualquer campo que contenha o delimitador, uma aspa dupla ou uma quebra de linha é envolvido em aspas duplas, e cada aspa dupla dentro do campo é duplicada. É o escape que o Excel, o Google Sheets, o módulo csv do Python e praticamente todos os analisadores de CSV entendem.
O meu JSON é carregado para um servidor?
Não. A análise, o achatamento e a geração do CSV acontecem inteiramente no teu navegador com JavaScript. Nada do que colas ou largas sai da tua máquina, por isso a ferramenta é segura para exportações confidenciais como listas de clientes, registos financeiros ou respostas de API com tokens.
Porque é que os carateres acentuados aparecem mal quando abro o CSV no Excel?
O Excel assume uma codificação antiga a menos que o ficheiro comece com uma marca de ordem de bytes UTF-8. O botão de descarregar CSV acrescenta essa marca automaticamente, pelo que acentos, tremas e outros carateres não ASCII aparecem corretamente. Se usares o botão de copiar e colares noutro sítio, é a aplicação de destino que controla a codificação.
Há limite para o tamanho do ficheiro?
O único limite é a memória do teu navegador. Ficheiros de dezenas de megabytes com centenas de milhares de linhas convertem-se sem problemas numa máquina típica; a pré-visualização mostra sempre apenas as primeiras 20 linhas, pelo que a interface se mantém fluida mesmo com entradas grandes.

Sobre JSON para CSV

O JSON do mundo real raramente é plano, por isso o conversor achata a estrutura automaticamente. Os objetos aninhados são expandidos com notação de pontos: {"address": {"city": "Lisbon"}} torna-se uma coluna chamada address.city. Os arrays são expandidos com índices entre parênteses retos: {"tags": ["admin", "dev"]} torna-se tags[0] e tags[1]. As duas regras combinam-se a qualquer profundidade, pelo que uma resposta de API profundamente aninhada como orders[0].items[2].price se transforma num nome de coluna limpo e previsível sem qualquer trabalho manual.

As opções de saída cobrem as manias de cada aplicação de folhas de cálculo. Escolhe vírgula, ponto e vírgula ou tabulação como delimitador; o ponto e vírgula é o que o Excel espera na maioria das configurações regionais europeias, onde a vírgula é o separador decimal. Desativa a linha de cabeçalho quando estiveres a acrescentar dados a uma folha existente, e ativa as aspas em tudo quando um importador rigoroso exigir que cada campo venha entre aspas duplas. O escape segue a convenção RFC 4180: os campos que contêm o delimitador, aspas ou quebras de linha são envolvidos em aspas duplas, e as aspas internas são duplicadas. O ficheiro descarregado inclui uma marca de ordem de bytes UTF-8 para o Excel mostrar corretamente os carateres acentuados.

Tudo corre do lado do cliente, no teu navegador: o JSON que colas ou largas nunca é carregado, registado ou guardado, o que torna a ferramenta segura para exportações com dados de clientes, credenciais ou registos internos. As mensagens de erro são precisas em vez de crípticas: ficas a saber se o JSON não pôde ser analisado (com a mensagem do próprio analisador), se o valor de topo não é um array ou qual o elemento concreto que não é um objeto. Os usos típicos incluem transformar respostas de APIs REST em folhas de cálculo, preparar dados para o Excel ou o Google Sheets e alimentar exportações JSON a ferramentas que só aceitam CSV.

Dos cartões perfurados às APIs REST: o estranho par dos formatos de dados

O CSV é muito mais antigo do que a maioria das pessoas imagina. Listas de valores separados por vírgulas aparecem logo na primeira versão do compilador FORTRAN da IBM, em 1972, e a ideia geral de campos separados por delimitadores remonta à tabulação com cartões perfurados. No entanto, durante as suas primeiras três décadas o CSV não teve especificação nenhuma: cada programa inventava as suas próprias regras para as aspas, os fins de linha e as vírgulas embutidas, e foi por isso que analisar ficheiros CSV alheios se tornou um rito de passagem para programadores. O formato só foi posto por escrito em 2005, quando o RFC 4180 documentou as convenções de facto: campos separados por vírgulas, aspas duplicadas para escape e registos terminados em CRLF. Mesmo assim, o RFC descreve-se a si próprio como mera documentação da prática existente, não como a definição de uma norma.

O JSON é a metade muito mais jovem do par, e foi descoberto mais do que inventado. Douglas Crockford deu-lhe nome e especificação em 2001, mas, como ele gosta de sublinhar, a sintaxe de literais de objeto do JavaScript já existia: ele limitou-se a recortar um subconjunto independente da linguagem, publicou o site de uma só página json.org e escreveu uma especificação suficientemente curta para caber num cartão de visita. A ascensão do JSON acompanhou a das APIs web: destronou o XML nos anos 2000 sobretudo por ser mais leve de transmitir e por corresponder diretamente às estruturas de dados de todas as linguagens principais, tornando-se norma ECMA em 2013 e RFC (8259) em 2017.

Os dois formatos perduram porque estão em extremos opostos de um compromisso. O JSON exprime hierarquia, aninhamento, tipos e arrays, o que o torna ideal para máquinas a falar com máquinas. O CSV exprime uma grelha plana, o que o torna ideal para humanos a olhar para dados numa folha de cálculo, ainda hoje a ferramenta analítica mais usada do mundo. Quase todos os pipelines de dados precisam, mais cedo ou mais tarde, de atravessar essa fronteira, achatando estruturas aninhadas em linhas e colunas, que é precisamente a transformação de notação de pontos e índices entre parênteses retos que este conversor executa. Meio século depois das vírgulas do FORTRAN e um quarto de século depois do json.org, traduzir entre os dois continua a ser uma das tarefas mais comuns do trabalho com dados.

Apoiar