Ir para o conteúdo principal

CSV vs JSON

CSV e JSON são ambos muito usados e escolhidos por razões diferentes. Esta página põe-nos frente a frente nas coisas que decidem entre eles, e liga aos conversores para as duas direcções — todos eles a correr no seu navegador, sem que o ficheiro seja alguma vez enviado.

A resposta curta

O CSV são linhas e colunas e mais nada. O JSON são valores dentro de valores, a qualquer profundidade. Se os seus dados são mesmo uma tabela — um registo por linha, os mesmos campos de cada vez — o CSV é menor, abre em qualquer folha de cálculo e é legível por qualquer pessoa. No momento em que um registo precisa de uma lista lá dentro, ou de um objecto aninhado opcional, o CSV começa a exigir convenções que o próprio formato não consegue fazer cumprir.

A segunda diferença são os tipos. O JSON distingue o número 42, a cadeia \"42\" e o booleano true. O CSV só conhece texto, e é por isso que um zero à esquerda desaparece de um código postal e que um número longo se torna notação científica quando uma folha de cálculo adivinha mal. Se os valores têm de sobreviver intactos a uma ida e volta, o JSON é o que o pode prometer.

Na prática a escolha é-lhe muitas vezes feita pelo que está do outro lado. Uma folha de cálculo quer CSV, uma API quer JSON, e discutir com qualquer uma delas dá mais trabalho do que converter. Onde pode escolher, a pergunta que vale a pena fazer é se algo nos dados alguma vez vai precisar de uma lista dentro de um registo — porque é aí que o CSV deixa de chegar.

Lado a lado

CSV e JSON comparados nas propriedades que os separam.
PropriedadeCSVJSON
Guardado comoTexto puro, legível em qualquer editorTexto puro, legível em qualquer editor
O que consegue guardarLinhas e colunasValores aninhados dentro de valores
Números continuam númerosNãoSim
ComentáriosNãoNão
Vários em um arquivo sóNãoNão
Publicado19722001

Onde diferem de facto

  • Conseguem exprimir formas diferentes. JSON guarda valores dentro de valores a qualquer profundidade; o outro são linhas e colunas, e o aninhamento tem de ser simulado com convenções que não consegue fazer cumprir.
  • Só JSON sabe que tipo de valor está a guardar. No outro tudo é texto, e é por isso que os zeros à esquerda somem e os números longos se tornam notação científica.
  • Separam-nos 29 anos, e boa parte do que os distingue é o que se tinha aprendido pelo meio.

O que costuma correr mal

  • Converter para o formato sem tipos transforma cada valor em texto. Os zeros à esquerda desaparecem, os números longos tornam-se notação científica, e as datas voltam na forma que o programa que as lê adivinhar.

Qual escolher

Escolha CSV quando
Escolha CSV para dados tabulares que vão para uma folha de cálculo, e onde o destinatário possa ser uma pessoa em vez de um programa.
Escolha JSON quando
Escolha JSON para tudo o que seja aninhado, tudo com campos opcionais e tudo onde um número tenha de continuar a ser um número.

Converter entre os dois

Perguntas frequentes

Porque é que converter CSV para JSON põe todos os meus números entre aspas?
Porque o CSV não leva tipos, pelo que um conversor não pode saber se 007 é um número, uma cadeia ou um código de produto. Adivinhar corromperia alguns ficheiros em silêncio, o que é pior do que pôr aspas. Onde um conversor oferece deduzir tipos, essa opção faz exactamente esta adivinhação, e vale a pena verificar o resultado antes de confiar nele.
Qual é melhor, CSV ou JSON?
Nenhum, em geral — se um fosse simplesmente melhor, o outro teria desaparecido. São bons em coisas diferentes, e a resposta curta acima diz qual em quê. A pergunta útil é o que o ficheiro tem de fazer a seguir: ser editado, ser publicado, ser aberto por outra pessoa, ou caber dentro de um limite de tamanho.
Converter entre eles perde alguma coisa?
Depende da direcção. Converter para um formato que guarda tudo não perde nada mas também não recupera nada; converter para um que descarta detalhe perde um pouco de cada vez. A tabela acima diz qual destes dois faz o quê.
Posso converter de volta depois?
O ficheiro converte-se de volta, mas se volta inalterado depende da direcção. Entre dois formatos que guardam tudo, uma ida e volta é sem perdas. Onde um dos dois descarta detalhe, esse detalhe desapareceu e a viagem de regresso não o pode inventar.
Posso usar os dois?
Numa página web, muitas vezes sim, e normalmente é a resposta certa: sirva o formato moderno mais pequeno e indique um mais antigo como alternativa, para que cada navegador leve o que entende. Para um ficheiro que entrega a uma pessoa, escolha um — aquele que ela consiga abrir.
Qual é que o meu software suporta?
A tabela lado a lado acima diz que navegadores leem cada um, que é a parte que mais varia. O suporte em computador é mais difícil de resumir em geral e costuma andar anos atrás dos navegadores, pelo que se o ficheiro vai para outra pessoa, o mais antigo e mais amplamente lido dos dois é a escolha mais segura.
Converter entre eles é grátis?
Sim, sem conta e sem limite de quantos ficheiros converte. Todos os conversores ligados a partir desta página correm no seu navegador: o ficheiro é lido do seu dispositivo, convertido por código a correr nele, e devolvido como transferência.
O meu ficheiro é enviado?
Não. Aqui não existe servidor de conversão nenhum para onde o enviar, e não há serviço de terceiros envolvido. Pode confirmá-lo você mesmo: abra as ferramentas de programador do navegador, mude para o painel de Rede sem filtro, e faça uma conversão — nenhum pedido leva o seu ficheiro.

A publicidade neste site

A publicidade paga este site. Os anúncios podem guardar cookies para escolher o que lhe mostrar e para não se repetirem. Os seus ficheiros não têm nada a ver com isso: nunca saem do navegador, seja qual for o botão que carregar, e todas as ferramentas funcionam nos dois casos.

O que isto abrange