Metade do meu trabalho em qualquer produto SaaS é obter dados do sistema e nas mãos de alguém que não escreve código Um fundador quer o mês & #39; s inscrições em uma planilha Um lead de suporte quer classificar tickets no Excel Um contador quer os pedidos como um .csv eles podem girar Os dados vivem como JSON, porque é isso que a API retorna, e cada vez que a tarefa é a mesma: transformar essa matriz de objetos em colunas e linhas que um ser humano pode abrir Eu me cansei de escrever scripts descartáveis para ele, e é exatamente por isso que o Toolz Conversor JSON para CSV existe. Este guia é como EU penso sobre essa conversão, incluindo as partes que tropeçam as pessoas.
tl;dr: Um conversor JSON para CSV pega uma matriz de objetos e escreve-a como linhas separadas por vírgulas, uma coluna por propriedade, para que uma planilha possa abri-la As partes rígidas são registros com diferentes campos, objetos aninhados e valores que contêm vírgulas Um bom conversor constrói o cabeçalho a partir da união de todas as chaves, pode achatar objetos aninhados em colunas de notação de ponto e campos de escape por RFC 4180 A ferramenta Toolz faz todos os três lados do cliente e permite escolher o delimitador e as terminações de linha CRLF para que o arquivo seja aberto de forma limpa no Excel.
Eu construo sobre Laravel e React, então JSON é meu formato nativo e CSV é a língua franca para a qual exportei A engenharia interessante não é o caminho feliz onde cada objeto tem as mesmas três chaves; é a realidade confusa dos dados de produção, e é aí que a maioria dos conversores silenciosamente faz a coisa errada.
O que é um conversor JSON para CSV?
Um conversor JSON para CSV lê uma matriz JSON de objetos e produz uma tabela: os nomes das propriedades tornam-se a linha de cabeçalho, e cada objeto torna-se uma linha de dados abaixo dele Cole a resposta de um endpoint API, uma consulta de banco de dados ou um documento exportado, e você obtém um arquivo que você pode abrir diretamente no Excel, Planilhas Google ou Números É a ponte entre a troca de máquinas de formato e o formato em que as pessoas realmente trabalham.
A entrada ideal é uma matriz de objetos planos que todos compartilham as mesmas chaves, porque que mapeia perfeitamente em uma tabela retangular Dados reais raramente são tão arrumados Objetos vão faltando um campo, valores ninho dois níveis de profundidade, e algumas entradas são matrizes em vez de escalares Todo o valor de um conversor dedicado é que ele tem uma resposta definida, sensata para cada um desses casos em vez de jogar um erro ou soltar dados Se o seu JSON é minificado ou você só quer inspecioná-lo primeiro, executá-lo através do formatador json para imprimir e validar antes de converter.
Como ele lida com objetos com campos diferentes?
Esta é a primeira coisa que quebra conversores ingênuos, e vale a pena entender porque a produção JSON quase nunca tem objetos uniformes Suponha que sua matriz tenha um objeto com id, name, e email, e o próximo com id, name, e phone. Que colunas o CSV deve ter?
A resposta correta é a união de cada chave em todos os objetos, mantida na ordem em que cada chave aparece pela primeira vez Então o cabeçalho se torna id, name, email, phone, e qualquer objeto faltando uma dessas chaves simplesmente obtém uma célula vazia nessa coluna Nada é descartado, e a tabela permanece retangular Um conversor preguiçoso que lê apenas as chaves do primeiro objeto perderia silenciosamente o phone coluna inteiramente, levando cada número de telefone com ele O conversor Toolz verifica todas as linhas para construir o cabeçalho, então registros desiguais ainda se alinham em uma tabela limpa e completa Este comportamento é a diferença entre uma exportação em que você pode confiar e uma que omite silenciosamente dados que ninguém percebe até que seja tarde demais.
E quanto a objetos e matrizes aninhados?
JSON é uma árvore; CSV é uma grade. A achatamento um no outro é o segundo lugar conversores divergir, ea escolha certa depende do que você planeja fazer com o arquivo.
Para objetos aninhados você tem duas opções razoáveis, e a ferramenta suporta ambos Com o achatamento, um objeto aninhado é expandido em colunas de notação de ponto, então { "address": { "city": "Paris", "zip": "75001" } } torna-se um address.city coluna e um address.zip coluna. É isso que você quer quando os campos aninhados são dados reais que uma pessoa vai ler e classificar Com o achatamento, todo o objeto aninhado é escrito como uma string JSON compacta dentro de uma única célula, o que é melhor quando a estrutura é opaca e você só precisa preservá-la literalmente.
As matrizes têm sua própria escolha, porque não há uma única maneira correta de espremer uma lista em uma célula Você pode armazenar a matriz como JSON, mantendo ["a","b"] intacto para que ele faça viagens de ida e volta perfeitamente, ou você pode unir os elementos com um separador para obter o mais legível por humanos a; b. Eu uso JSON quando o arquivo será lido de volta por um programa e o formato de junção quando uma pessoa é o público e a legibilidade ganha A tabela abaixo resume as decisões.
| Forma entrada | Achatar | Achatar |
|---|---|---|
{"user":{"name":"Ada"}} |
coluna user.name = Ada |
coluna user = {"name":"Ada"} |
{"tags":["x","y"]} (matrizes como JSON) |
coluna tags = ["x","y"] |
coluna tags = ["x","y"] |
{"tags":["x","y"]} (matrizes unidas) |
coluna tags = x; y |
coluna tags = x; y |
| objeto faltando uma chave | célula vazia nessa coluna | célula vazia nessa coluna |
Por que as vírgulas e aspas precisam escapar?
Esta é a regra que, ignorada, produz um ficheiro que parece bem até alguém o abrir e as colunas estarem todas erradas O CSV usa a vírgula para separar campos, por isso, o que acontece quando um valor contém uma vírgula Ou uma citação dupla Ou uma quebra de linha de uma nota de várias linhas?
RFC 4180, a coisa mais próxima que o CSV tem de um padrão, responde isto precisamente: qualquer campo contendo o delimitador, uma aspa dupla ou uma quebra de linha deve ser envolvido em aspas duplas, e qualquer aspa dupla dentro desse campo deve ser duplicada. Portanto, o valor Baker, Smith & Co. está escrito como "Baker, Smith & Co.", e She said "hi" torna-se "She said ""hi""". O conversor Toolz aplica essas regras a cada célula automaticamente, e é por isso que um endereço, um preço com um separador de milhares ou um comentário de texto livre sobrevive à viagem para uma planilha como um campo único e intacto, em vez de se dividir em colunas extras.
Como faço para que o arquivo abra de forma limpa no Excel?
Você pensaria que um CSV é um CSV, mas o Excel no Windows é exigente sobre uma coisa que pega as pessoas: finais de linha acertar isso é a diferença entre um arquivo que abre perfeitamente e um onde as linhas aparecem mescladas ou divididas.
O Excel no Windows espera que cada linha termine com um retorno de carro mais um feed de linha, o par CRLF Se você entregar a ele um arquivo com finais de linha LF estilo Unix, ele pode ler mal onde as linhas quebram, especialmente quando um campo citado contém sua própria nova linha O conversor permite escolher LF ou CRLF, então escolha CRLF quando o público estiver Excel no Windows e LF para a maioria das outras ferramentas e para o Planilhas Google, o que é feliz com qualquer um Você também pode escolher o delimitador: vírgula é o padrão, mas ponto e vírgula é comum em locais europeus onde a vírgula é o separador decimal, e guia ou pipe são úteis quando seus dados em si estão cheios de vírgulas Corresponder ao delimitador e linha terminando no destino é uma escolha de cinco segundos que salva um ticket de suporte mais tarde.
É seguro converter JSON sensível online?
Sim, porque nada disso sai do seu navegador Cada parte da conversão, desde a análise do JSON até o escape de cada campo até a junção das linhas, é executada em JavaScript em sua própria máquina Não há upload e nenhum servidor, então nada é transmitido, registrado ou aberto a guia de rede e clique em Converter: você verá nenhuma solicitação sair e, uma vez que a página tenha carregado, a ferramenta funciona com a internet desconectada.
Este não é um detalhe menor para JSON especificamente, porque JSON é o que as respostas API e sistemas internos falam A matriz que você está convertendo pode conter registros de usuários, dados de pedidos, tokens de acesso ou qualquer outra coisa que seu backend retorna Um conversor que envia sua carga útil para um servidor remoto transforma uma resposta privada em outra pessoa & #39; s linha de log. Fazer o trabalho do lado do cliente significa que os dados ficam exatamente onde começou É o padrão para cada ferramenta no Toolz.dev, e se você quiser o caso mais completo para por que essa arquitetura importa, EU estabeleci no guia de privacidade de dados para ferramentas online.
Onde isso cabe em um pipeline real?
Por si só o conversor é um passo, mas geralmente é o último salto de um fluxo mais longo, e ele emparelha naturalmente com um punhado de outras ferramentas A viagem de ida e volta mais comum na minha semana é: exportar JSON de uma API, editá-lo ou filtrá-lo, converter para CSV, e entregá-lo a alguém que vive em planilhas Quando eles enviá-lo de volta com alterações, EU converto a outra direção com o Conversor CSV para JSON, que analisa o arquivo por RFC 4180 e infere tipos para que EU obtenha objetos limpos novamente As duas ferramentas são espelhos deliberados um do outro, e é por isso que eles se reticulam.
Antes de converter, muitas vezes quero ver os dados como uma grade para verificar a sanidade, e o Visualizador CSV renderiza CSV como uma tabela classificável para que EU possa confirmar a exportação parece certo E quando o destino não é uma planilha em tudo, mas outro sistema que fala XML, o Conversor de XML para JSON e suas contrapartes cobrem essa perna Porque cada um desses é executado localmente, você pode encadeá-los no mesmo arquivo privado sem um único upload Se você está montando um conjunto de ferramentas go-to para esse tipo de disputa de dados, meu Guia do kit de ferramentas para desenvolvedores web cobre como penso em montar um.
Perguntas frequentes
Como faço para converter JSON em CSV?
abra o Conversor JSON para CSV, cole uma matriz JSON de objetos na caixa de entrada, e clique em Converter As teclas de objeto se tornam a linha de cabeçalho e cada objeto se torna uma linha de dados, então você pode copiar o CSV ou baixá-lo como um .csv ficheiro a abrir no Excel ou nas Planilhas Google Todo o processamento acontece no seu navegador, por isso nada é carregado.
Qual estrutura JSON o conversor espera?
Uma matriz de objetos é ideal, onde cada objeto se torna uma linha Um único objeto também é aceito e se torna um arquivo de uma linha Valores que não são objetos são colocados sob a value coluna para que nada se perca e a ferramenta avisa quando isso acontece.
Como ele lida com objetos com campos diferentes? O cabeçalho é a união de cada chave encontrada em todos os objetos, mantida na ordem em que cada chave aparece pela primeira vez Um objeto sem uma dessas chaves simplesmente obtém uma célula vazia nessa coluna, de modo que registros irregulares ainda produzem uma tabela limpa e completa sem dados descartados.
Como os objetos aninhados e arrays são tratados?
Com o achatamento, um objeto aninhado se expande em colunas de notação de ponto como address.city; com ele desligado, o objeto é escrito como uma string JSON em uma célula As matrizes podem ser armazenadas como JSON para preservá-las exatamente, ou unidas com um separador para uma coluna mais legível Você escolhe por conversão.
Por que devo usar terminações de linha CRLF para Excel? O Microsoft Excel no Windows espera carriage-return mais line-feed no final de cada linha A escolha do CRLF evita que as linhas sejam mescladas ou mal lidas quando você abre o arquivo Para a maioria das outras ferramentas e para o Google Sheets, o LF funciona bem.
As vírgulas e aspas dentro dos valores escaparam corretamente? Sim. seguindo RFC 4180, qualquer campo contendo o delimitador, uma citação dupla, ou uma quebra de linha é envolvido em aspas duplas, e as aspas internas são dobradas Isso mantém endereços, descrições e outro texto livre como um único campo válido em vez de dividir em colunas.
É seguro converter JSON sensível? Sim. a conversão é executada inteiramente em JavaScript no seu navegador, nenhuma solicitação de rede transporta seus dados, nada é registrado ou armazenado e funciona offline uma vez carregado JSON contendo chaves de API, registros de usuários ou identificadores internos nunca sai da sua máquina.
Posso converter o CSV de volta para JSON? Sim. o Conversor CSV para JSON inverte o processo, analisando o arquivo separado por vírgulas de volta em uma matriz JSON de objetos com inferência de tipo A ida e volta permite mover dados entre planilhas e APIs sem reescrevê-los manualmente.



