Conversor de JSON para CSV - achatar dados aninhados
Conversor de JSON para CSV
O que esta ferramenta faz
Alguém te mandou uma resposta de API e outra pessoa a quer numa planilha. O trabalho é esse, e é mais difícil do que parece: JSON é uma árvore e uma planilha é uma grade. Esta página toma as três decisões que transformam um no outro, e mostra o que decidiu.
Como usar
- 1 Cole o JSON ou solte um arquivo .json.
- 2 Escolha o separador: ponto e vírgula se o arquivo for para o Excel.
- 3 Clique em Converter e copie o resultado ou baixe o .csv.
Uma árvore não cabe numa grade, então ela é achatada
Um objeto aninhado vira uma coluna com ponto: {"city":{"name":"London"}} vira a coluna city.name. Sem isso, um conversor escreve «[object Object]» na célula: o arquivo abre, parece válido e metade dos seus dados sumiu. Listas de valores simples são juntadas numa célula; listas de objetos ganham colunas numeradas.
[
{
"name": "Ada",
"city": { "name": "London" },
"note": "Loves \"tea\""
},
{
"name": "Grace",
"city": { "name": "New York, NY" },
"tags": ["math", "navy"]
}
]
name,city.name,note,tags Ada,London,"Loves ""tea""", Grace,"New York, NY",,math; navy
As colunas vêm de todas as linhas, não da primeira
Em dados reais os registros raramente têm os mesmos campos: um opcional aparece no quadragésimo registro e em nenhum antes. Um conversor que lê só o primeiro registro descarta essa coluna em silêncio, e nada na saída avisa. Aqui o cabeçalho é a união de todas as chaves vistas, na ordem em que aparecem, e campos ausentes viram célula vazia.
Uma única vírgula solta desloca todas as colunas
Todo valor que contenha o separador, uma aspa ou uma quebra de linha precisa ficar entre aspas, com as aspas internas duplicadas. É o que o padrão CSV pede e é onde os conversores mais erram. Um endereço com vírgula, um comentário com quebra de linha, um nome com apóstrofo: cada um quebra em silêncio um arquivo que pule esta etapa.
O Excel quebra arquivos CSV de duas maneiras diferentes
Primeiro, sem marca de ordem de bytes ele lê UTF-8 como a página de código local, e os acentos e caracteres não latinos viram papa. Segundo, em muitas localidades espera ponto e vírgula em vez de vírgula, e enfia cada linha numa única coluna. Aqui as duas são opções e as duas vêm desligadas: o padrão diz vírgula e sem marca, e o arquivo costuma ir para um script, não para uma planilha.