Pular para o conteudo principal
CuteJSON
↑↓ Navegar Enter Selecionar Esc Fechar

O que e JSON? Um guia iniciante a JavaScript Object Notation

Publicado 3 min de leitura Por Akash Kinkar Pandey

JSON, JavaScript Object Notation, e um formato de texto para representar dados estruturados: objetos, listas, strings, numeros, booleanos e um valor nulo, escrito em uma sintaxe pequena o suficiente para ser lido em uma tarde e rigorosa o suficiente para que todas as linguagens o analisem da mesma forma. Nao esta vinculado a JavaScript apesar do nome. Toda linguagem principal fornece um analisador JSON em sua biblioteca padrao ou com uma linha de instalacao, que e a razao real pela qual venceu: nao porque e elegante, mas porque e monoton e portavel.

Como parece

{
  "nome": "Ada Lovelace",
  "idade": 36,
  "estaEmpregada": true,
  "habilidades": ["matematica", "escrita"],
  "endereco": { "cidade": "Londres", "pais": "UK" },
  "apelido": null
}

Um objeto e { } contendo pares chave valor, um array e [ ] contendo uma lista ordenada, e tudo mais se aninha dentro desses dois contenedores. Essa e toda a forma de JSON: dois tipos de contenedor e alguns tipos de valor dentro deles.

Os seis tipos de valor, nem mais nem menos

Um valor JSON e uma string, um numero, um booleano (true ou false), null, um array ou um objeto. Mais nada existe na especificacao. Nao ha tipo data, nao ha undefined, nao ha sintaxe de comentarios, e nao ha forma de representar uma funcao. Uma data se torna uma string em um formato que ambas as partes concordam (geralmente ISO 8601), e um valor que seria undefined em JavaScript e simplesmente omitido do objeto em vez de escrito. Tipos de Dados JSON Explicados detalha cada um dos seis com mais profundidade, incluindo os casos limites que derrubam um analisador ingenuo.

Por que substituiu XML na maioria das APIs

XML envolve cada valor em tags de abertura e fechamento, suporta atributos alem disso, e precisa de uma linguagem de schema separada para descrever o que e valido. Os contenedores JSON tem dois caracteres cada, os valores sao tipados sem uma tag dizendo isso, e a forma do documento reflete a forma da estrutura de dados que um programa realmente usa; analisar um documento JSON no literal de objeto nativo de uma linguagem e quase uma copia direta, onde um documento XML geralmente precisa do seu proprio modelo de objetos traduzido por cima. Essa e uma diferenca real e mensuravel em tamanho de payload e custo de analise, e e por isso que as APIs REST se estabeleceram em JSON uma vez que ele existiu. Veja JSON vs XML para uma comparacao mais proxima e especifica.

Onde voce realmente o encontra

  • Respostas e requisicoes de APIs REST. O formato dominante para corpos Content-Type: application/json, em ambas as direcoes.
  • Arquivos de configuracao. package.json, tsconfig.json, e a maioria das configuracoes de ferramentas modernas, embora YAML tambem seja comum aqui; veja JSON vs YAML para quando cada um e melhor.
  • Bancos de dados NoSQL e de documentos. Os documentos MongoDB sao armazenados como BSON, um superconjunto binario de JSON, e a maioria dos bancos de dados de documentos aceita e retorna JSON diretamente.
  • Linhas de log e pipelines de dados, um objeto JSON por linha, um formato geralmente chamado NDJSON. Casos de Uso Comuns de JSON percorre isso e os outros com formas reais.
  • Armazenamento do navegador. localStorage so armazena strings, entao qualquer coisa estruturada passa por JSON.stringify ao entrar e por JSON.parse ao sair.

Trabalhando com

Cole um documento no Formatador JSON para imprimi-lo formatado, ou no Validador JSON para verifica-lo contra a especificacao com uma linha e coluna no caractere exato que falhou. Nenhum envia o que voce cola; ambos rodam inteiramente no seu navegador. Uma vez que o basico faca sentido, a Folha de Referencia JSON e uma referencia de uma pagina para as regras de sintaxe acima, vale a pena manter aberta em uma aba ou baixar para referencia offline.

Voltar a todos os posts