O que é JSON?

O que é JSON?

Imagine que você precise desenvolver a funcionalidade de pagamento de faturas para uma nova fintech com o objetivo de fazer com que o tráfego de dados fosse o mínimo possível para que tudo continuasse funcionando bem mesmo em redes mais lentas ou com largura de banda menor.

O que é JSON?

O formato JSON (JavaScript Object Notation) é, como o nome sugere, uma forma de notação de objetos JavaScript de modo que eles possam ser representados de uma forma comum a diversas linguagens.

Além disso, uma ideia que está fortemente enraizada neste formato é que ele seja facilmente trafegado entre aplicações em quaisquer protocolos, inclusive o HTTP. Portanto, a principal diferença entre um objeto JavaScript padrão e um JSON é o fato do JSON ser na realidade: um texto.

Regras de utilização

Um JSON deve conter apenas informações que possam ser representadas em formato de texto. Listei algumas regras:

  • Não pode ter funções;
  • Não pode ter comentários;
  • Todo texto sempre tem aspas duplas;
  • As propriedades sempre tem aspas duplas.

Desta forma, imagine o envio do pagamento de uma nova fatura com o nome do cliente, um identificador numérico qualquer do cliente e uma lista de pagamentos a serem feitos na fatura em questão. Tais informações teriam, em JSON, o seguinte formato:

{
   "cliente": {
       "id": 2020,
       "nome": "Maria Aparecida"
   },
   "pagamentos": [
       {
           "id": 123,
           "descricacao": "Compra do livro Cangaceiro JavaScript",
           "valor": 50.5
       },
       {
           "id": 124,
           "descricacao": "Mensalidade escolar",
           "valor": 1500
       }
   ]
}

Embora se assemelhe com um objeto JavaScript literal, o JSON apresentado segue exatamente todas as regras que citei anteriormente. Além disso, é um formato muito mais simples e menos burocrático do que o mundialmente famoso XML que durante muito tempo foi utilizado como padrão para envio de informações entre aplicações.

Como você está usando JavaScript, Java e PHP nas aplicações em que estão envolvidos, trouxe um pequeno exemplo nestas linguagens:

// JavaScript

const fatura = // Criação do objeto fatura.

const faturaJSON = JSON.stringify(fatura); // Transforma o objeto literal em JSON.

const novamenteObjFatura = JSON.parse(faturaJSON); // Transforma o JSON em objeto literal.
// PHP

$fatura = // Criação do objeto fatura.

$faturaJSON = json_encode($meuObj); // Transforma o objeto em JSON.

$novamenteObjFatura = json_decode($faturaJSON); // Transforma o JSON em objeto.
// Java usando a biblioteca Jackson

Fatura fatura = // Criação do objeto fatura.

ObjectMapper mapper = new ObjectMapper();

String jsonString = mapper.writeValueAsString(fatura); // Objeto Java para JSON string.

Fatura novamenteFatura = mapper.readValue(jsonString, Fatura.class); //JSON string para objeto Java.

Com isso, você vai conseguir trafegar as informações que precisa atendendo aos requisitos que levantamos no início deste artigo.

Ainda há uma questão que vocês nem mesmo perceberam! O que acontecerá quando persistir em suas aplicações o nome de uma cliente que, porventura, se chame, digamos, Joana D'arc? Você não sabe? Fique atento(a)! No próximo artigo vou mostrar a você o que este simples nome pode gerar!

Saiba mais na Alura

Gostou e se interessou por este conteúdo? Aqui na Alura temos cursos na área de programação em C# para você!.

Gabriel Leite
Gabriel Leite

Gabriel é desenvolvedor e instrutor com foco em Java, Ionic e Node.js.

Veja outros artigos sobre Programação