Command Palette

Search for a command to run...

Conversão JSON para CSV: 5 métodos que os desenvolvedores usam em 2026

Conversão JSON para CSV: 5 métodos que os desenvolvedores usam em 2026

T
Toolz Team
|Jun 27, 2026|15 min ler

Parte da coleção Ferramentas de dados

Conversor JSON para CSV

Converta JSON para CSV on-line Transforma uma matriz de objetos em um arquivo pronto para planilha, achata objetos aninhados e escapa campos por RFC 4180. 100% client-side, sem inscrição.

Usar Conversor JSON para CSV

O primeiro conversor JSON-para-CSV que escrevi durou três dias na produção.

Era um & quot; exportar para planilha e quot; botão em um painel de administração Laravel, e minha lógica de conversão era - I' não estou orgulhoso disso - values.join(","). Ele passou por testes. Em seguida, um usuário exportou uma lista de clientes onde uma empresa se chamava "Smith, Jones & Partners", e cada coluna depois de mudar uma posição para a direita. O contador importou 340 linhas de dados desalinhados antes que alguém percebesse que os números de telefone estavam na coluna de e-mail.

A vírgula no CSV não é um separador, você pode se juntar ao seu caminho. É uma gramática, definida em RFC 4180, com regras de fuga reais. Esse bug é o motivo pelo qual o Conversor JSON para CSV Mais tarde, construí para Toolz.dev trata a fuga como inegociável - e por que esse guia passa tempo real nos casos de borda, não apenas no caminho feliz.

Aqui estão os cinco métodos que eu realmente uso, quando cada um vence e onde cada um morde.

tl;dr: Para conversões pontuais, cole seu JSON no Conversor Toolz.dev JSON para CSV- ele achata objetos aninhados com notação de ponto, escapa corretamente de acordo com a RFC 4180 e roda 100% em seu navegador. Para trabalhos recorrentes, crie um script: pd.json_normalize() em Python ou o json2csv pacote no nó. Valide com o formatador json primeiro, e manter o achatamento JSON - CSV original é unilateral.


Por que você precisa do CSV quando já possui JSON?

Porque as pessoas que precisam de seus dados não moram no seu terminal. Todas as solicitações de conversão que já recebi são reduzidas a uma das cinco situações:

Analistas trabalham em planilhas. Excel, Planilhas Google, Tableau, Power BI - todos eles inalam CSV nativamente e sufocam no JSON aninhado Converter a saída da API para CSV é como os dados de engenharia chegam ao lado comercial.

Bancos de dados importam arquivos simples em massa. PostgreSQL COPY E MySQL's LOAD DATA deseja entrada tabular. Existem colunas JSON, mas o carregamento em tabelas relacionais reais significa primeiro achatar.

As migrações precisam de uma língua franca. Movendo dados entre um armazenamento NoSQL e um relacional ou entre duas plataformas SaaS, o CSV é o formato que ambas as extremidades são compreendidas de forma confiável.

A conformidade gosta de arquivos simples. Alguns requisitos de arquivo especificam formatos legíveis por humanos. Um CSV abre em qualquer coisa, daqui a algumas décadas.

As partes interessadas não podem ler JSON. Um gerente de produto perguntando "Posso conseguir isso como uma planilha?" é o gatilho mais comum. Foi o gatilho do meu botão de exportação quebrado.

Diagram showing JSON data flowing through conversion to CSV format with use cases branching to spreadsheets, databases, and analytics


O que torna a conversão JSON para CSV difícil?

Flat JSON é trivial. isto:

[
  {"id": 1, "name": "Alice", "email": "[email protected]", "age": 30},
  {"id": 2, "name": "Bob", "email": "[email protected]", "age": 25}
]

Torna-se isto, chaves para cabeçalhos, elementos para linhas:

id,name,email,age
1,Alice,[email protected],30
2,Bob,[email protected],25

Mas as respostas reais da API nunca são planas. Eles ficam assim:

[
  {
    "id": 1,
    "name": "Alice",
    "address": {"street": "123 Main St", "city": "San Francisco", "state": "CA"},
    "skills": ["JavaScript", "Python", "Go"]
  }
]

O CSV não tem noção de "dentro". Então você escolhe uma estratégia de achatamento e cada um tem um custo:

Achatamento da notação de pontos- as chaves aninhadas tornam-se cabeçalhos compostos:

id,name,address.street,address.city,address.state,skills
1,Alice,123 Main St,San Francisco,CA,"JavaScript; Python; Go"

Colunas indexadas para arrays- skills.0, skills.1, skills.2. Previsível, mas um recorde com 14 habilidades produz 14 colunas para todos.

Células codificadas em JSON- coloque o JSON bruto na célula, citado duas vezes. Sem perdas, ilegível e deixa os analistas tristes.

A notação de pontos com matrizes unidas é o padrão certo para consumo humano - it' s o que o Conversor Toolz.dev produz. As colunas indexadas vencem quando o código downstream precisa de cada elemento endereçável. JSON-in-Cells é o último recurso para viagens de ida e volta.


Método 1: como você converte JSON em CSV online?

Melhor para: Conversões únicas, não desenvolvedores, qualquer coisa abaixo de algumas dezenas de MB.

  1. abra o Conversor JSON para CSV.
  2. Cole seu JSON - uma matriz de objetos ou um único objeto.
  3. A ferramenta detecta a estrutura, nivela os objetos aninhados para anotação de pontos e renderiza o CSV instantaneamente.
  4. copie-o ou baixe o .csv.

A razão pela qual EU padrão para isso sobre um script para qualquer coisa não recorrente: zero setup, RFC 4180 correto escapando (aprendeu essa lição), automático chave-união através de objetos inconsistentes, e - porque ele' s cliente-lado - a resposta API cheio de e-mails de clientes que você acabou de colar nunca sai da sua máquina Assista a guia Rede se você não & #39; t acredita em mim; that& #39; s o teste que EU aplico a cada conversor on-line, e a maioria falhar.

Onde é a ferramenta errada: conversões recorrentes (script-a) e nidificação profundamente patológica, onde você deseja escolher a dedo na estratégia de achatamento.

Diagram of the toolz.dev JSON to CSV converter showing JSON input on the left and CSV output on the right


Método 2: como você converte JSON em CSV em JavaScript?

Melhor para: Pipelines de construção, serviços de nó, lógica de transformação personalizada.

Aqui e #39; é a versão mínima correta - observe a fuga, que é a parte que meu desastre de três dias pulou:

function jsonToCsv(jsonArray) {
  if (!jsonArray.length) return "";

  const headers = Object.keys(jsonArray[0]);
  const csvRows = [
    headers.join(","),
    ...jsonArray.map(row =>
      headers.map(header => {
        const value = row[header] ?? "";
        // RFC 4180: double embedded quotes, wrap anything containing , " or newline
        const escaped = String(value).replace(/"/g, '""');
        return /[,"\n\r]/.test(escaped) ? `"${escaped}"` : escaped;
      }).join(",")
    )
  ];

  return csvRows.join("\n");
}

Para entrada aninhada, achate primeiro e una as teclas - pegar cabeçalhos apenas do primeiro objeto é o segundo bug mais comum em conversores laminados à mão:

function flattenObject(obj, prefix = "") {
  const result = {};
  for (const [key, value] of Object.entries(obj)) {
    const newKey = prefix ? `${prefix}.${key}` : key;
    if (value && typeof value === "object" && !Array.isArray(value)) {
      Object.assign(result, flattenObject(value, newKey));
    } else if (Array.isArray(value)) {
      result[newKey] = value.join("; ");
    } else {
      result[newKey] = value;
    }
  }
  return result;
}

function nestedJsonToCsv(jsonArray) {
  const flattened = jsonArray.map(item => flattenObject(item));
  // Union of ALL keys, not just the first object's
  const headers = [...new Set(flattened.flatMap(Object.keys))];
  // ...then emit rows exactly as in jsonToCsv above
}

Ou pule o rolo manual - o json2csv O pacote lida com essas arestas há anos:

import { Parser } from "json2csv";

const parser = new Parser({ flatten: true });
const csv = parser.parse(data);

Método 3: Como você converte JSON em CSV em Python?

Melhor para: Fluxos de trabalho de ciência de dados, qualquer coisa que já toque os pandas.

A linha One-liner Pandas cobre o JSON plano:

import pandas as pd

df = pd.read_json("data.json")
df.to_csv("output.csv", index=False)

A função genuinamente útil é pd.json_normalize()- construído especificamente para respostas de API aninhadas:

import pandas as pd
import requests

response = requests.get("https://api.example.com/users")
df = pd.json_normalize(response.json())
print(df.columns.tolist())
# ['id', 'name', 'skills', 'address.street', 'address.city', 'address.state']

# Arrays still need a decision — join them explicitly:
df["skills"] = df["skills"].apply(lambda x: "; ".join(x) if isinstance(x, list) else x)
df.to_csv("output.csv", index=False)

Observe que json_normalize achatados aninhados objetos Mas deixa matrizes como listas Python - se você pular a etapa de junção, suas células CSV conterão ['JavaScript', 'Python'] textualmente. Todo mundo acerta isso uma vez.

Não há pandas disponíveis? A biblioteca padrão lida bem com o JSON plano:

import json, csv

with open("data.json") as f:
    data = json.load(f)

with open("output.csv", "w", newline="") as f:
    writer = csv.DictWriter(f, fieldnames=data[0].keys())
    writer.writeheader()
    writer.writerows(data)

Método 4: Como você converte JSON em CSV da linha de comando?

Melhor para: Scripts de shell, pipelines de CI, servidores onde a instalação de pandas é um exagero.

jq faz nativamente com @csv, que escapa corretamente:

cat data.json | jq -r '
  (.[0] | keys_unsorted) as $keys |
  ($keys | @csv),
  (.[] | [.[$keys[]]] | @csv)
'

csvkit's in2csv é a opção de baixo pensamento:

pip install csvkit
in2csv data.json > output.csv

e Miller (mlr) brilha quando você deseja filtrar na mesma passagem:

mlr --json2csv filter '$age > 25' data.json > output.csv

A composibilidade é o ponto - curl -s api.example.com/data | jq ... > report.csv É um pipeline completo de planilhas para planilhas em uma linha de cron.


Método 5: você pode importar JSON diretamente para o Excel ou as Planilhas do Google?

Melhor para: Não desenvolvedores, dados refrescantes ao vivo, importações pontuais.

Excel: Dados → Obtenha dados → da Web, cole o URL da API e o Power Query oferece um editor visual para expandir os registros aninhados antes de carregar. genuinamente bom para atualizações repetidas da mesma fonte.

Planilhas do Google: Extensões → Script de aplicativos e uma pequena função de busca:

function importJSON(url) {
  const response = UrlFetchApp.fetch(url);
  const data = JSON.parse(response.getContentText());
  if (!Array.isArray(data) || data.length === 0) return [["No data"]];
  const headers = Object.keys(data[0]);
  const rows = data.map(item => headers.map(h => item[h] ?? ""));
  return [headers, ...rows];
}

usado em uma célula como =importJSON("https://api.example.com/data").

Honest Take: para importações pontuais, convertendo com o ferramenta online E abrir o CSV é mais rápido que qualquer um. As rotas nativas de planilhas ganham o custo de configuração somente quando os dados são atualizados em uma programação.


Qual método você deve escolher?

método instalação JSON aninhado Uso recorrente Os dados permanecem locais
conversor online nenhum automático manual de cada vez Sim - lado do cliente
Javascript / JSON2CSV Instalação do npm via flatten excelente sim
Python / Pandas instalação de pip json_normalize excelente sim
JQ / CSVKIT / MLR gerenciador de pacotes Caminhos manuais Excelente (Cron/CI) sim
Excel/Planilhas Conta/aplicativo IU do Power Query Bom (auto-atualização) Excel: sim; planilhas: servidores do Google

Minha regra: alcance a ferramenta do navegador até a terceira vez I & #39; m convertendo a mesma forma de dados - então ele se torna um script.


Quais os casos de borda que quebram a conversão JSON para CSV?

Quatro armadilhas são responsáveis por quase todas as exportações quebradas que depuraram:

Chaves inconsistentes. Objeto 1 tem email, o objeto 2 possui phone, objeto 3 tem ambos Pegue cabeçalhos do primeiro objeto apenas e você silenciosamente soltar dados A correção é uma chave-união em todos os objetos, com valores ausentes como células vazias - que boas ferramentas fazem automaticamente.

Personagens especiais sem escapamento. O problema de "Smith, Jones & Partners" Por RFC 4180: envolva valores contendo vírgulas, aspas ou novas linhas entre aspas duplas e as aspas incorporadas ("He said ""hello""").

arquivos grandes. Depois de 100 MB ou mais, a análise de arquivos inteiros fica dolorosa. Em vez disso, transmita - jq Streams, pandas em pedaços e formato de linhas JSON (um objeto por linha) facilitam ambos. Para arquivos de até algumas dezenas de MB, a ferramenta do navegador é boa, pois não há upload.

codificação. Nomes e endereços têm caracteres não ASCII. Mantenha tudo UTF-8 de ponta a ponta e desconfie do Excel no Windows, que historicamente queria uma lista de materiais para detectar UTF-8 corretamente.

E uma prática que não é opcional: Valide antes de converter. Um arquivo JSON truncado falha confusamente no meio da conversão, mas obviamente no formatador json. Trinta segundos de validação superam dez minutos de "por que meu CSV está vazio."


Perguntas frequentes

Como faço para converter JSON para CSV online gratuitamente?

Cole seu JSON no Conversor JSON para CSV em Toolz.dev- ele gera instantaneamente CSV com objetos aninhados achatados e escapando manipulados, em seguida, permite copiar ou baixar o resultado Sem inscrição, e o processamento é 100% do lado do cliente, para que seus dados nunca saiam do seu navegador.

Posso converter JSON aninhado em csv?

Sim. Objetos aninhados achatam os cabeçalhos das notações de pontos (address.city), e as matrizes são unidas em uma string delimitada ou divididas em colunas indexadas. o Conversor Toolz.dev Aplica notação de pontos automaticamente; em Python, pd.json_normalize() faz o mesmo.

Como faço para converter um arquivo JSON em CSV em Python?

import pandas as pd; pd.read_json("data.json").to_csv("output.csv", index=False) Para JSON plano. Para estruturas aninhadas, use pd.json_normalize(data) primeiro - e lembre-se de juntar qualquer coluna de matriz você mesmo, uma vez que normalizar deixa as listas intactas.

Qual é a melhor maneira de converter arquivos JSON muito grandes?

Stream em vez de carregar: jq na linha de comando, ou pandas com leituras fragmentadas. Converter o arquivo em linhas JSON (um objeto por linha) torna o streaming muito mais simples. As ferramentas do navegador são confortáveis até algumas dezenas de MB; além de 100 MB, use a linha de comando.

Como faço para converter o CSV de volta para JSON?

o Conversor CSV para JSON inverte a viagem - cada linha se torna um objeto digitado pela linha de cabeçalho. Programaticamente: pd.read_csv("data.csv").to_json(orient="records").

Por que meu CSV tem aspas em torno de alguns valores?

Esse é o comportamento correto, não um bug. RFC 4180 requer aspas em torno de qualquer valor que contenha vírgulas, novas linhas ou caracteres de aspas, com aspas incorporadas dobradas. Planilhas e analisadores retiram-nos na leitura.

A conversão JSON para CSV não tem perdas?

Para JSON plano, sim. Para JSON aninhado, os valores sobrevivem, mas a hierarquia não & #39; t - os cabeçalhos de notação de ponto são achatados representação, e você nem sempre pode reconstruir o ninho original exato deles. Mantenha o JSON de origem; trate o CSV como uma visualização derivada.

Por que minhas colunas estão desalinhadas após a conversão?

Quase sempre uma falha de escape: um valor contendo uma vírgula era & #39; t citado, então os analisadores veem colunas extras a partir desse ponto It& #39; s o bug exato do meu botão de exportação Laravel Use um conversor que implemente RFC 4180 em vez de valores de junção de string - e se você escreveu o seu próprio, teste-o com um valor como Smith, Jones & Partners.

Como faço para converter JSON em CSV no Excel ou no Planilhas Google?

Ambos os aplicativos importam JSON por meio de um helper em vez de uma pasta. No Excel, use dados → Obter dados → do arquivo → do JSON e, em seguida, achate a consulta no Power Query e feche & load. No Planilhas Google, cole pequenos arrays por meio de um script de aplicativos temporários ou converta com o Conversor JSON para CSV primeiro e abra o arquivo resultante - geralmente o caminho mais rápido para um one-off.

Qual método JSON para CSV devo usar?

Para um rápido off, um conversor do lado do cliente é mais rápido e mantém os dados privados. Para pipelines repetíveis, use Python com pandas; para arquivos enormes, faça streaming com jq na linha de comando; e alcance para a importação de planilha somente quando não-desenvolvedores possuem o fluxo de trabalho. Combine a ferramenta com a frequência com que você repetirá o trabalho, não apenas o tamanho do arquivo.


Combine o método com o trabalho

JSON-TO-CSV parece uma linha única resolvida até que uma vírgula em um nome de empresa mude 340 linhas de dados do cliente uma coluna para a direita. O método importa menos do que respeitar o formato: Escape per rFC 4180, unir suas chaves, decidir sua estratégia de achatamento de propósito e manter o JSON original.

Para a próxima conversão única, o Conversor JSON para CSV é o caminho de quinze segundos. Valide primeiro com o formatador json, e quando os dados precisam voltar, o Conversor CSV para JSON fecha o loop - todos os três em seu navegador, nenhum deles jamais vendo o lado do servidor de dados.


Artigos relacionados:

Frequently Asked Questions

Paste your JSON into the JSON to CSV Converter on toolz.dev — it instantly generates CSV with nested objects flattened and escaping handled, then lets you copy or download the result. No signup, and processing is 100% client-side, so your data never leaves your browser.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!