Json To Csv LogoJson To Csv

O que é um arquivo JSON e CSV? Guia para iniciantes dos dois formatos (guia 2026)

JSON e CSV são ambos texto puro, mas armazenam dados em formas completamente diferentes. Este guia mostra os dois formatos lado a lado com os mesmos dados, explica as cinco diferenças que importam e verifica exatamente o que uma conversão de JSON para CSV mantém e o que ela descarta em silêncio.

Atualizado: 2026-10-219 min de leitura

O que é um arquivo JSON: como ele realmente é

Este é um arquivo JSON de verdade: dois registros de clientes. Leia com calma uma vez, porque todos os conceitos deste guia apontam de volta para ele.

O arquivo inteiro é uma lista, marcada por colchetes [ ], contendo dois objetos. Cada objeto, marcado por chaves { }, é um registro. Dentro de um objeto, os dados vivem em pares chave-valor: "id": 101 significa que a chave "id" contém o valor 101, e as chaves são sempre texto entre aspas.

Os valores mantêm seus tipos, e esse é um dos superpoderes do JSON. "Amelia Chen" é um texto (string, entre aspas). 101, 2023 e 4 são números (sem aspas). true e false são booleanos. null é um "sem valor aqui" explícito, diferente de um texto vazio: lastNote é null para a Amelia, o que significa que o campo existe mas não tem valor, enquanto o lastNote do Bruno contém o texto "Call, don't email".

Aí vem o aninhamento, a razão de o JSON existir. "address" é um objeto dentro do objeto do cliente, com suas próprias chaves city e state. "tags" é uma lista dentro do objeto do cliente, contendo dois textos. O JSON aninha de forma arbitrária: objetos dentro de listas dentro de objetos, tão fundo quanto seus dados forem. Espaços em branco são irrelevantes, então a versão formatada bonita acima e uma versão minificada de uma linha só são os mesmos dados. Uma peculiaridade que vale conhecer: se uma chave aparece duas vezes no mesmo objeto, o último valor vence e o primeiro é perdido em silêncio. Verificado com JSON.parse na máquina de compilação: {"a":1,"a":2} resulta em 2. Raramente acontece na prática, mas quando acontece, nada avisa você.

customers.json: dois registros aninhados
[
  {
    "id": 101,
    "name": "Amelia Chen",
    "email": "amelia@example.com",
    "vip": true,
    "signupYear": 2023,
    "address": { "city": "Austin", "state": "TX" },
    "orders": 4,
    "tags": ["newsletter", "referral"],
    "lastNote": null
  },
  {
    "id": 102,
    "name": "Bruno Almeida",
    "email": "bruno@example.com",
    "vip": false,
    "signupYear": 2024,
    "address": { "city": "São Paulo", "state": "SP" },
    "orders": 1,
    "tags": ["newsletter"],
    "lastNote": "Call, don't email"
  }
]

O que é um arquivo CSV: como ele realmente é

Agora os mesmos dois registros em CSV. Esta saída foi produzida pelo conversor desta página a partir do JSON acima, com o achatamento ativado, então o que você vê é exatamente o que a conversão faz, não uma ilustração.

A primeira linha é a linha de cabeçalho: os nomes das colunas. Cada linha depois dela é um registro, com os valores na mesma ordem, separados por vírgulas. Esse é o formato inteiro: cabeçalho, linhas, delimitador. Dez colunas, duas linhas, nenhum aninhamento em lugar algum.

Agora tudo é texto, e essa é a característica definidora do CSV. 101, true e 2023 parecem um número e booleanos, mas o arquivo não sabe disso: são caracteres, e quem abre o arquivo decide o que eles significam. A célula vazia no final da linha da Amelia é o lastNote null dela: null virou nada. As duas tags dela viraram uma célula, "newsletter; referral", unidas com "; ". E a nota do Bruno está entre aspas, "Call, don't email", porque contém uma vírgula: aspas são como o CSV protege um valor que contém o delimitador.

O objeto address virou duas colunas, address.city e address.state. Esse achatamento em notação de ponto é exatamente o que os conversores fazem, e nosso guia de achatamento explica o interruptor por trás dele em detalhes. Note o que o CSV não consegue mais dizer: que city e state pertenciam a um único objeto address, ou que newsletter e referral eram duas tags separadas em vez de um texto com ponto e vírgula. A forma sumiu. Os valores ficaram.

Os mesmos dois registros em CSV (saída verificada do conversor)
id,name,email,vip,signupYear,address.city,address.state,orders,tags,lastNote
101,Amelia Chen,amelia@example.com,true,2023,Austin,TX,4,newsletter; referral,
102,Bruno Almeida,bruno@example.com,false,2024,São Paulo,SP,1,newsletter,"Call, don't email"

JSON vs CSV: as cinco diferenças que realmente importam

Mesmos dados, duas filosofias. Cinco diferenças decidem qual formato você escolhe, e elas explicam quase todos os argumentos de "qual devo usar" que você já vai ouvir.

Primeira, a forma: JSON é uma árvore, CSV é uma tabela. O JSON pode conter um pedido contendo um cliente contendo um endereço contendo uma lista de itens, aninhando tão fundo quanto a realidade for. O CSV tem exatamente um nível: linhas e colunas. Qualquer coisa mais funda precisa ser achatada em colunas de notação de ponto ou serializada em uma célula como texto, e de qualquer jeito a estrutura original não está mais realmente ali.

Segunda, os tipos: o JSON distingue o número 2023 do texto "2023", e o booleano true do texto "true". O CSV armazena caracteres; a interpretação acontece depois, em quem abre o arquivo. É por isso que o texto "007" chega em um CSV como os caracteres 007 (verificado no conversor desta página), mas uma planilha pode ainda exibi-lo como 7 quando você abre o arquivo: o CSV manteve o texto fielmente, e o Excel deu seu próprio palpite por cima. O formato fez o trabalho dele; o visualizador acrescentou uma opinião.

Terceira, o esquema: o JSON é autodescritivo. Cada registro carrega suas próprias chaves, então os registros podem diferir: um cliente pode ter um campo "notes" que os outros não têm, e o arquivo continua perfeitamente válido. O esquema do CSV vive na linha de cabeçalho e assume uniformidade. Uma linha com um valor extra não tem onde documentado colocá-lo, e dados irregulares, em que as linhas carregam campos diferentes, viram um quebra-cabeça de alinhamento de colunas em vez de um não-problema.

Quarta, edição manual: o JSON pune pequenos erros em voz alta. Uma vírgula ou aspa faltando torna o arquivo inteiro inválido, o que é irritante mas honesto, e é por isso que validadores de JSON existem. O CSV pune pequenos erros em silêncio. Uma vírgula sem aspas dentro de um valor desloca todas as colunas depois dela, e o arquivo ainda abre, só que errado. Quando você edita à mão, falha barulhenta vence corrupção silenciosa.

Quinta, os produtores: os formatos seguem seus produtores. APIs, apps, bancos de dados e logs emitem JSON porque pensam em estruturas aninhadas com tipos. Planilhas, exportações de negócios e anexos de e-mail são CSV porque humanos pensam em tabelas. Quando alguém entrega um arquivo para você, o formato geralmente diz de qual mundo ele veio, e converter é como os dois mundos conversam entre si.

Conversão de arquivo JSON para CSV: o que realmente acontece

Converter é achatar: projetar a árvore sobre a tabela. Cada afirmação desta seção foi verificada na máquina de compilação contra o motor de conversão exato que esta página executa, então estas são as regras reais, não as idealizadas.

Com o achatamento ativado, o motor aplica seis regras. Objetos aninhados viram colunas em notação de ponto: address.city, address.state. Listas de valores simples viram uma célula unida com "; ": newsletter e referral viraram "newsletter; referral". Null vira uma célula vazia. Uma lista vazia também vira uma célula vazia, o que significa que null e uma lista vazia são indistinguíveis depois da conversão. Um objeto vazio vira o texto literal {}. Números e booleanos viram suas formas de texto: 2023 vira os caracteres "2023".

A sexta regra cobre o caso estranho: uma lista de objetos. Não há jeito sensato de unir objetos com um separador, então o motor armazena a lista como texto JSON dentro da célula, com as aspas duplicadas. Executado contra um registro de teste, um objeto vazio, uma lista vazia, um null, um aninhamento de três níveis e uma lista de objetos produziu exatamente isto:

Com o achatamento desativado, o motor mantém tudo mais simples e menos útil: cada valor aninhado fica como texto JSON na célula. O mesmo objeto address vira o texto da célula {"city":"Austin"}, aspas duplicadas. Mesmos valores, muito menos útil como tabela. Nosso guia de achatamento cobre quando cada configuração é a escolha certa.

Mais uma regra silenciosa, e ela acontece antes de a conversão começar. Como o JSON.parse mantém o último valor quando uma chave se repete, um registro como {"code":"A1","code":"B2"} converte só com B2. O primeiro valor some antes de o conversor ver os dados. Raro na prática, vale saber exatamente uma vez.

Casos de borda no motor real (achatamento ativado)
a,b,c,d.e.f,g
{},,,1,"[{""h"":1},{""h"":2}]"

O que sobrevive à conversão de JSON para CSV e o que se perde

O que sobrevive: todo valor folha, como texto. Nomes, números, datas, notas, endereços de e-mail: todos presentes no CSV, todos corretos. Se sua pergunta é "perdi alguma informação que digitei", a resposta é não. Para uma planilha, um assistente de importação ou uma leitura rápida humana, nada do que você precisa está faltando.

O que não sobrevive: primeiro, os tipos. O número 2023 e o texto "2023" são idênticos no CSV; true e "true" também são idênticos. Quem lê o CSV vai adivinhar, e os palpites variam: o Excel é famoso por transformar o texto "007" no número 7 e "1-2" em uma data. Segundo, a forma aninhada: address.city não sabe mais que um dia foi um objeto, e "newsletter; referral" não sabe mais que eram duas tags. Terceiro, chaves duplicadas: só o último valor sobrevive. Quarto, a distinção entre null e uma lista vazia: ambos viram uma célula vazia, então "sem valor" e "uma lista sem nada dentro" se fundem em um só.

Isso cria o problema do desachatamento: converter de volta é adivinhar. "newsletter; referral" eram duas tags ou um texto que por acaso continha ponto e vírgula? address.city um dia foi um objeto, ou a chave sempre foi literalmente "address.city"? Um conversor pode adivinhar, mas o CSV não lembra. A regra prática: guarde o JSON como sua fonte da verdade e gere o CSV sempre que precisar da visão em tabela. Armazenamento é barato. Rederivar forma não é.

Qual formato usar: arquivo JSON ou arquivo CSV?

Escolha JSON quando os dados têm forma ou o público é um programa. Dados indo para ou vindo de uma API, um app ou um banco de dados. Registros aninhados ou irregulares em que as linhas nem todas se parecem. Valores cujos tipos precisam sobreviver, como preços como números e sinalizadores como booleanos. Logs, configurações e qualquer coisa que código vai processar. Se você pode precisar da estrutura de volta depois, o JSON é o único lar seguro para ela.

Escolha CSV quando um humano ou uma ferramenta em forma de tabela é o público. Alguém vai abrir no Excel ou no Google Sheets. Você está enviando dados por e-mail para um colega não técnico. A ferramenta de destino espera linhas e colunas: dashboards de BI, assistentes de importação, carregadores de lista de e-mails. Os dados são genuinamente planos, e você quer o menor arquivo: medido na máquina de compilação, 1.000 linhas uniformes de clientes ocuparam 111.433 bytes como JSON mas só 48.473 bytes como CSV, menos da metade do tamanho, porque o JSON repete cada nome de chave em cada linha. Para dados aninhados a comparação desmorona, já que o CSV não comporta aninhamento sem gambiarras, mas para tabelas planas o CSV vence em tamanho sempre.

A combinação prática em que a maioria das equipes chega: armazenar e trocar JSON, exportar CSV sob demanda. Guarde o original rico; gere a cópia de trabalho plana sempre que alguém precisar. O conversor desta página existe exatamente para esse segundo passo, e nosso guia de métodos cobre as três formas confiáveis de fazer isso: o conversor online, o Power Query do Excel e Python.

Alternando entre arquivo JSON e arquivo CSV

De JSON para CSV é a viagem para a qual este site foi construído: cole ou envie seu JSON no conversor no topo desta página, sem cadastro, e a conversão roda inteiramente no seu navegador, então seus dados nunca saem da sua máquina. Para trabalho repetível ou automatizado, nosso guia de conversão mostra o mesmo trabalho no Power Query do Excel e em Python.

De CSV para JSON é a viagem de volta, e ela vem com o aviso honesto da seção anterior: os tipos precisam ser adivinhados no caminho de volta, porque o CSV nunca os armazenou. Nosso guia reverso cobre a conversão e mostra onde os palpites podem dar errado, para você conferi-los em vez de confiar neles.

Guias relacionados

Perguntas frequentes

JSON é o mesmo que CSV?

Não. O JSON armazena dados aninhados e tipados como objetos e listas; o CSV armazena tabelas planas como linhas de texto. Eles resolvem problemas diferentes: JSON é para dados estruturados que programas trocam entre si, CSV é para tabelas que humanos abrem em planilhas. Você converte entre eles o tempo todo, e é por isso que os dois formatos se recusam a morrer.

Um arquivo CSV pode conter dados aninhados como o JSON?

Não nativamente. Um CSV tem linhas e colunas e nada mais fundo, então o aninhamento precisa ser achatado (um objeto address vira as colunas address.city e address.state) ou empacotado em uma única célula como texto JSON. As duas gambiarras perdem a forma original, e é por isso que você guarda o JSON sempre que o aninhamento importa. Nosso guia de achatamento mostra exatamente o que o interruptor de achatamento faz com dados aninhados.

Converter JSON para CSV perde dados?

Perde forma, não valores. Todo valor folha sobrevive como texto, mas os tipos colapsam (números e booleanos viram texto), o aninhamento achata em colunas de notação de ponto, chaves duplicadas mantêm só o último valor, e null e listas vazias viram ambos células vazias. Para uma planilha ou uma importação, nada do que você precisa está faltando. Para converter de volta para JSON, guarde o arquivo original.

Qual é menor, um arquivo JSON ou um arquivo CSV?

Para dados planos e uniformes, o CSV costuma ser bem menor. Medido na máquina de compilação: 1.000 linhas de clientes ocuparam 111.433 bytes como JSON mas só 48.473 bytes como CSV, menos da metade do tamanho, porque o JSON repete cada nome de chave em cada linha. Para dados aninhados a comparação desmorona, já que o CSV não comporta aninhamento sem duplicar ou serializar. Escolha pela forma, não pelo tamanho.

O Excel abre um arquivo JSON?

Não diretamente como planilha. Os caminhos confiáveis são: converter o JSON para CSV primeiro e abrir isso, ou usar o Power Query (Dados > Obter Dados > De Arquivo > De JSON), que importa o JSON para o Excel corretamente. Nosso guia de conversão de arquivos mostra o caminho do Power Query passo a passo.

JSON é legível por humanos?

Sim, é texto puro, e um JSON pequeno e formatado lê-se bem. A legibilidade desmorona com tamanho e profundidade: uma exportação minificada de uma linha só é tecnicamente legível e praticamente hostil. Para arquivos grandes, formate bonito primeiro com um formatador, ou converta para CSV e leia a tabela em vez disso.

Por que as APIs retornam JSON em vez de CSV?

Porque dados de API raramente são uma tabela plana. As respostas aninham (um usuário tem um endereço, que tem coordenadas), misturam tipos (números, booleanos, nulos) e variam por registro, tudo coisas que o JSON lida e o CSV não. O CSV brilha quando os dados já são uma tabela e o público é humano; o JSON brilha quando os dados têm forma e o público é um programa.

Transforme JSON em CSV em uma aba

Agora que você conhece os dois formatos, converta entre eles aqui: cole o JSON, baixe o CSV. Grátis, sem cadastro, roda inteiramente no seu navegador.

Abrir o conversor de JSON para CSV
Todos os guias