JSON

A linguagem JSON (acrônimo para JavaScript Object Notation) permite representar dados. Assim como XML, em uma aplicação para web dados representados no formato JSON são usados quando se quer enviar dados ao servidor ou quanto se quer receber dados do servidor.

Em aplicações para web,a linguagem JSON é uma alternativa à XML e tem sido cada vez mais usada no lugar de XML.

Tipos de dados

Os dados JSON devem ser de um dos seguintes tipos:

  • string
  • número
  • boolean
  • null
  • objeto
  • array

Tipo string

Qualquer expressão entre aspas. Exemplo:

"Fulano de Tal"

Tipo número

Números podem ser inteiros ou reais (ponto flutuante). Exemplos:

673
34.56

Tipo boolean

Representa um valor lógico verdadeiro ou falso. Exemplos:

true
false

Tipo null

Representa, como em muitas linguagens de programação, a ausência de informação. Exemplo:

null

Tipo objeto

Um objeto é um conjunto de zero ou mais pares chave-valor delimitados pelos caracteres "{" e "}".

A chave deve ser um string e o valor pode ser qualquer valor JSON. Exemplos:

{}
{"nome": "Fulano de Tal", "idade": 45, "casado": true}

Como o tipo objeto é um valor JSON válido o valor de uma chave pode ser um objeto. Exemplo:

{"nome": "Fulano de Tal ", "idade":45, "endereco": {"logradouro": "Rua dos Piolhos" , "numero": 45, "cep": "88037-001"}}

No exemplo o valor da chave endereco é um objeto JSON.

Tipo array

Um array é um conjunto de zero ou mais valores delimitados pelos caracteres "[" e "]". Exemplos:

[]
[67,34,12]
["segunda", "terça", "quarta", "quinta", "sexta"]
[true, false, true]
[null, null]

Os valores de um array não precisam ser do mesmo tipo. Exemplo:

[23, "classificados", true, null, 45]

Como o tipo array é um valor JSON válido o valor em um array também pode ser um array. Exemplo:

[ [23, 15, 98], [12, 88, 66] ]

O exemplo mostra um array contendo dois arrays. Poderia ser usado para representar uma matriz 2x3 (duas linhas por três colunas).

Array de Objetos

Como o tipo objeto é um valor JSON válido é perfeitamente legal haver array de objetos. Exemplo:

[{}, {"nome": "Fulano de Tal", "idade": 45}]

O exemplo acima mostra um array contendo dois objetos.

Objeto contendo array

Como o tipo array é um valor JSON válido é perfeitamente legal que ele seja usado como valor em um objeto. Exemplo:

{"nome": "Fulano de Tal", "notas": [7.5, 8.0, 6.5]}

JSON e JavaScript

O formato JSON, como o nome sugere, está relacionado com a linguagem de programação JavaScript. Esta linguagem também permite a representação de dados no formato de objeto (um objeto JavaScript) e no formato de array.

A conversão do formato JSON para JavaScript e vice-versa é bastante simples e não requer nenhuma biblioteca (como ocorre em todas as demais linguagens de programação).

Atenção: Objetos JavaScript podem conter valores que não são válidos em JSON (como objetos da classe Date, funções e o valor undefined). Portanto, objetos JavaScript e objetos JSON não são a mesma coisa.

Convertendo objeto JavaScript para objeto JSON

Para converter um objeto JavaScript para um objeto JSON utiliza-se JSON.stringify. Exemplo:

var objetoJavaScript = { nome: "Fulano de Tal", idade: 45};
var stringJSON = JSON.stringify(objetoJavaScript);

A variável stringJSON é uma string cujo conteúdo é um objeto JSON. Este conteúdo, por exemplo, pode ser enviado do progra cliente para o servidor ou vice-versa.

Convertendo objeto JSON para objeto JavaScript

Para converter um objeto JSON para um objeto JavaScript utiliza-se JSON.parse. Exemplo:

var stringJSON = `{"nome": "Fulano de Tal", "idade": 45}`;
var objetoJavaScript = JSON.parse(stringJSON);

A variável stringJSON é uma string cujo conteúdo é um objeto JSON. O resultado da execução do método parse é um objeto JavaScript que é armazenado na variável objetoJavaScript.

JSON e outras linguagens de programação

Toda linguagem de programação possui bibliotecas especializadas na tarefa de converter dados do formato específico da linguagem para o formato JSON e vice-versa.

O fundamental é compreender que JSON sempre é um texto cujo conteúdo representa, no formato JSON, dados. Normalmente as linguagens de programação representam textos por meio do conceito de string. Portanto:

  • converter para JSON consiste em gerar uma string cujo conteúdo segue as regras do formato JSON.
  • converter de JSON consiste em extrair dados de uma string cujo conteúdo segue as regras do formato JSON.

Nada impede, portanto, que o desenvolvedor escreva ele mesmo algoritmos para realizar a conversão. Porém, é muito mais prático, rápido e seguro utilizar uma biblioteca específica para esta finalidade.

Leitura Obrigatória
Introdução ao JSON
Sintaxe JSON
Leitura Recomendada
JSON Schema

results matching ""

    No results matching ""