Um formato textual para representar valores
JSON, sigla de JavaScript Object Notation, é um formato de texto usado para representar conteúdo estruturado. Ele permite organizar nomes e valores, listas e estruturas aninhadas. APIs e arquivos de configuração usam esse formato para que programas diferentes possam interpretar a mesma representação.
Apesar do nome, JSON pode ser usado por programas escritos em diversas linguagens. Uma aplicação em PHP pode produzir o texto, e um programa em Python pode interpretá-lo, desde que respeitem a sintaxe do formato. O significado dos campos também precisa estar combinado no contrato da integração.
Imagine uma resposta que descreve um contato e os canais pelos quais ele aceita receber mensagens. JSON permite reunir essas informações em um texto, preservando a diferença entre um nome, um identificador e uma lista de canais.
Como ler a estrutura
{
"id": 42,
"nome": "Ana",
"ativo": true,
"canais": ["email", "sms"],
"telefone": null
}As chaves delimitam um objeto, formado por pares de nome e valor. No exemplo, nome contém uma string, id contém um número e ativo contém um booleano. Os nomes dos campos e as strings usam aspas duplas.
Os colchetes delimitam uma lista, também chamada de array. A lista canais contém duas strings e preserva a ordem dos elementos. O valor null representa um valor nulo, cujo significado para o telefone precisa ser definido pelo contrato.
JSON também aceita listas de objetos e objetos dentro de outros objetos. Para localizar um campo, você percorre essa estrutura. Um telefone dentro de contato não está no mesmo caminho que um telefone colocado na raiz da mensagem.
Um documento JSON também pode conter apenas um valor, como 42, true ou "Ana". O formato não exige um objeto na raiz, embora uma API possa exigir essa estrutura para receber os campos de um cadastro.
Sintaxe válida e cadastro válido
Comentários e vírgulas depois do último elemento não fazem parte da sintaxe JSON. Formatos derivados podem aceitá-los, mas isso não significa que uma API que exige JSON fará o mesmo. Confira o formato exato do arquivo ou serviço utilizado.
JSON e objeto JavaScript
Um objeto JavaScript é uma estrutura em memória. JSON é uma representação textual, que pode ser produzida com JSON.stringify e lida com JSON.parse. Uma variável que já contém um objeto não precisa ser interpretada novamente como se fosse texto.
Funções, undefined e instâncias de classes não têm uma representação direta equivalente no formato. Datas costumam ser transmitidas como strings por convenção. Depois de ler o JSON, a aplicação precisa interpretar essa convenção para trabalhar com uma data.
Cuidados ao trocar valores entre sistemas
Identificadores muito grandes podem perder precisão quando interpretados como números em determinadas linguagens. Por esse motivo, alguns contratos usam strings para identificadores numéricos. Preserve o tipo documentado, sem converter um campo apenas por ele conter algarismos.
Um campo ausente também não é necessariamente equivalente a um campo com null. Em uma atualização, a ausência pode significar “manter o valor”, enquanto null pode solicitar sua remoção. Essa diferença pertence ao contrato da API e precisa ser conferida antes do envio.
Para investigar um erro, separe a leitura sintática da validação dos campos. O verbete de serialização explica como o programa produz essa representação e quais valores podem mudar durante a conversão.
Dúvidas frequentes
Perguntas frequentes sobre JSON
- JSON funciona apenas com JavaScript?
- O formato é independente de linguagem. Programas em PHP, Python e outras linguagens podem produzir e interpretar JSON.
- JSON é igual a um objeto JavaScript?
- JSON é texto com uma sintaxe definida. Um objeto JavaScript é uma estrutura em memória e pode conter valores que não têm equivalente direto no formato JSON.
- Um JSON válido sempre será aceito pela API?
- Não. Um objeto pode ter sintaxe válida e omitir o nome obrigatório do contato. A API precisa conferir os campos recebidos e as condições do cadastro depois de interpretar o JSON.
- JSON aceita comentários e vírgula no final?
- A sintaxe JSON não aceita comentários nem vírgula depois do último elemento. Um arquivo de configuração pode usar outro formato que aceite esses recursos, mas esse conteúdo não será necessariamente aceito por uma API que exige JSON.
Para continuar
Recursos relacionados
Documentação
Formato JSON na RFC 8259
Define a sintaxe, os tipos de valor e as recomendações de interoperabilidade do JSON.
Abrir recursoDocumentação
JSON.stringify na MDN
Documenta a conversão para JSON e o tratamento de valores não representáveis.
Abrir recursoSite de referência
Desenvolvimento Colaborativo da Dev Side Studio
Conheça o acompanhamento técnico ao vivo para conferir a estrutura JSON e os tipos dos campos trocados entre os sistemas.
Abrir recursoAplicação na formação
Vibe Coding: Do Zero ao MVP
JSON representa valores estruturados trocados entre a interface e os serviços do projeto.
Conhecer a formação
Fontes consultadas
Referências deste verbete
Este verbete ajudou você?
Obrigado pela resposta. Ela fica salva apenas neste navegador.