← Todos os guias

Guia · Dados

JSON e CSV: como representar o mesmo conjunto de dados?

CSV representa registros em campos separados; JSON oferece objetos, listas e valores com estrutura explícita. Ambos podem trocar dados, mas exigem convenções de significado. Converter formatos pode perder tipos, hierarquia ou detalhes que não foram descritos.

Escrito pela equipe Compuzilla

Publicado em . Atualizado em .

Nesta leitura
Compuzilla sorrindo ao lado de um diagrama: JSON e CSV: como representar o mesmo conjunto de dados.

JSON e CSV: como representar o mesmo conjunto de dados

  1. Dados e significado
  2. Convenção do formato
  3. Leitura pela aplicação
CSV e JSON têm estruturas distintas. Converter exige decidir como preservar os significados. Ilustração: equipe Compuzilla.

Duas pessoas em uma tabela

Considere os registros Ana, 20 anos, e Bia, 25 anos. Um CSV simples pode ser escrito assim:

nome,idade
Ana,20
Bia,25

O cabeçalho identifica os campos por convenção. O texto 20 precisa ser interpretado como idade pelo programa que lê; o formato básico não declara um tipo numérico de coluna como um esquema de banco.

Os mesmos registros em JSON

Uma representação possível usa uma lista de objetos:

[
  {"nome": "Ana", "idade": 20},
  {"nome": "Bia", "idade": 25}
]

Aqui, strings e números têm sintaxe distinta. Isso não impede uma aplicação de aceitar um valor incoerente: ainda é necessário definir quais valores de idade fazem sentido e quais campos são exigidos.

Campos com pontuação exigem regras

Se um nome contém uma vírgula, o CSV precisa usar a convenção apropriada de aspas. Quebras de linha também podem existir dentro de campos citados. Dividir o arquivo por cada vírgula e cada quebra de linha sem aplicar essas regras pode separar dados incorretamente.

JSON tem suas próprias regras de aspas e escape. Não aceita comentários nem vírgula depois do último item na sintaxe padronizada.

Estruturas que não são uma tabela simples

Um objeto JSON pode conter uma lista de telefones dentro de cada pessoa. Para levar isso a CSV, é preciso escolher uma convenção: campos extras, vários registros ou outro conjunto relacionado. Não existe uma conversão única que preserve todo significado automaticamente.

Nos dois formatos, codificação e contrato importam. Uma extensão reconhecida não prova que o conteúdo esteja correto nem explica se 0012 é um número ou um identificador que precisa conservar seus zeros.

Próxima leitura

Leia Unicode para entender a leitura dos caracteres representados em bytes.

Continue aprendendo

  • Verbete JSON — JSON é um formato textual para representar e trocar dados estruturados. Usa valores como números, textos, booleanos, listas e objetos. Sua sintaxe é independente de uma linguagem específica, apesar da origem associada a JavaScript.
  • Verbete CSV — CSV é um formato textual para representar registros em campos separados, normalmente por vírgulas. Pode incluir uma primeira linha de cabeçalho. Aplicações usam variações, então separador, codificação e regras de aspas precisam ser conhecidos para a leitura correta.
  • Verbete Unicode — Unicode é um padrão para representar caracteres de muitos sistemas de escrita por códigos e regras comuns. Codificações como UTF-8 transformam esses códigos em bytes. Caractere, código, byte e desenho exibido na tela são conceitos relacionados, mas distintos.
  • Verbete API — API é uma interface que define como um componente de software pode ser usado por outro. Descreve operações, entradas e resultados. Pode existir dentro de um programa, no sistema operacional ou entre serviços pela rede; não é sinônimo de serviço web.

Fontes para aprofundar