Texto de: Camila Pessôa
Introdução
JSON, ou JavaScript Object Notation, é um formato de texto leve e autodescritivo projetado para facilitar o intercâmbio de dados entre sistemas, ou seja, o json funciona para trocar dados entre aplicações. Criado em 2002 por Douglas Crockford, o JSON se tornou um padrão amplamente adotado na comunicação web, especialmente em APIs e aplicações cliente-servidor. Sua simplicidade e legibilidade o tornam uma alternativa eficiente a formatos como XML, sendo independente de linguagem de programação — ou seja, funciona com Python, Java, PHP e muitas outras.
Vamos conhecer um pouco mais sobre o formato?
Estrutura do JSON
O JSON organiza dados em duas estruturas principais: objetos e arrays.
1. Objetos
Delimitados por chaves {}, são coleções de pares chave-valor, onde:
- Chaves: Sempre são strings (entre aspas duplas).
- Valores: Podem ser strings, números, booleanos (true ou false), null, objetos ou arrays.
Exemplo:
{
"nome": "Maria Silva",
"idade": 28,
"estudante": false,
"endereco": {
"rua": "Avenida Brasil",
"cidade": "São Paulo"
},
"telefones": ["11-98765-4321", "11-91234-5678"]
}
As chaves são: nome, idade, estudante… e os valores são os dados correspondentes.
2. Arrays
Delimitados por colchetes [], armazenam listas ordenadas de valores.
Exemplo:
["maçã", "banana", "laranja"]
Podemos também ter um array de objetos que pode ser utilizado para armazenar dados:
Exemplo:
[
{
"id": 1,
"nome": "João",
"ativo": true
},
{
"id": 2,
"nome": "Maria",
"ativo": false
}
]
Conseguimos notar que podemos trabalhar com vários tipos de dados, vamos conhecer quais tipos o JSON suporta a seguir:
- Strings: Texto entre aspas duplas ("exemplo").
- Números: Inteiros ou decimais (10, 3.14).
- Booleanos: true ou false.
- Null: Representa um valor vazio (null).
- Objetos: Estruturas aninhadas.
- Arrays: Listas de valores.
Devido a sua flexibilidade, o JSON surge como uma ferramenta excelente para trabalhar com o tráfego de dados e possui inúmeras vantagens que vamos conhecer na sequência.
Vantagens do JSON e Casos de Uso
- Leveza: Não possui tags redundantes como XML (ex: <nome>...</nome>).
- Legibilidade: Estrutura clara para humanos e máquinas.
- Independência de Linguagem: Suportado por quase todas as linguagens modernas.
- Parse Rápido: Bibliotecas nativas garantem conversão eficiente (ex: JSON.parse() em JavaScript).
Pensando nisso, o JSON é aplicado em diferentes casos de uso, como:
1. APIs REST: A maioria das APIs retorna dados em JSON.
Exemplo: Uma requisição a api.com/usuarios pode retornar:
[{"id": 1, "nome": "João"}, {"id": 2, "nome": "Ana"}]
- Arquivos de Configuração:
- package.json no Node.js define dependências e scripts.
3. Armazenamento em Bancos NoSQL: MongoDB usa BSON (binário semelhante ao JSON).
4. Comunicação Cliente-Servidor: Envio de dados via AJAX em aplicações web.
Trabalhando com JSON em Código e Boas Práticas
Vamos entender brevemente como podemos manipular o código em JSON?
Temos a seguir dois exemplos que fazem a conversão do JSON para os dados possam ser manipulados pela linguagem:
JavaScript
// Converter objeto JS para JSON (serialização)
const usuario = { nome: "Carlos", idade: 35 };
const jsonString = JSON.stringify(usuario); // Resultado: {"nome":"Carlos","idade":35}
// Converter JSON para objeto JS (desserialização)
const json = '{"nome":"Carlos","idade":35}';
const objeto = JSON.parse(json);
console.log(objeto.nome); // "Carlos"
Python
import json
# Dicionário para JSON
usuario = {"nome": "Ana", "idade": 25}
json_string = json.dumps(usuario) # '{"nome": "Ana", "idade": 25}'
# JSON para dicionário
json_str = '{"nome": "Ana", "idade": 25}'
objeto = json.loads(json_str)
print(objeto["nome"]) # "Ana"
Estes são apenas uma pequena parcela do potencial do formato JSON, pois é acessível em diferentes linguagens e, como notamos no exemplo, a sua própria manipulação acompanha as variações da linguagem escolhida. Porém, há algumas boas práticas que independem da linguagem, vamos conferir a seguir?
Boas Práticas
- Valide seu JSON: Use ferramentas como JSONLint para evitar erros de sintaxe.
- Formatação Legível: Utilize indentação e quebras de linha para facilitar a leitura.
- Evite Comentários: JSON não suporta comentários oficialmente.
- Cuidado com Aspas: Aspas simples (') são inválidas — use aspas duplas (").
- Segurança: Nunca use eval() para parsear JSON em JavaScript (risco de injeção de código).
Conclusão
O JSON é uma ferramenta essencial no desenvolvimento moderno, unindo simplicidade e eficiência na troca de dados. Seja em APIs, configurações ou bancos de dados, seu formato intuitivo e universal o torna indispensável. Dominar o JSON é um passo fundamental para qualquer pessoa que trabalhe com programação ou desenvolvimento web.
Você pode aprofundar seus conhecimentos no vídeo a seguir:
Dicas JavaScript: Notação Literal do Objeto, JSON e Suas DIFERENÇAS