BrowserTools
Início / Conversores / Conversor de JSON para CSV, achata arrays JSON em folhas de cálculo

Conversor de JSON para CSV, achata arrays JSON em folhas de cálculo

Converte um array JSON de objetos em CSV no teu navegador. Achata objetos e arrays aninhados, deteta colunas, pré-visualiza e descarrega o ficheiro.

A carregar Conversor de JSON para CSV, achata arrays JSON em folhas de cálculo… 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 Conversor de JSON para CSV, achata arrays JSON em folhas de cálculo

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