JSON Explicado – Como Utilizar JSON com JavaScript

JSON Explicado – Como Utilizar JSON com JavaScript
AdsTerra, Junte-se ao AdsTerra

JSON (JavaScript Object Notation) é um formato de texto para a troca de dados entre clientes (páginas web) e servidores.

Em outras palavras, páginas web e servidores podem trocar apenas dados de texto. Portanto, se você deseja enviar algum conteúdo JavaScript para um servidor, é necessário converter o código para um formato de texto (JSON).

Como Converter um Objeto JavaScript para JSON

O objeto global JSON do JavaScript contém um método chamado stringify() para converter um objeto JavaScript em um texto JSON.

INFO: A conversão de um objeto JavaScript para um texto JSON é chamada de serialização.

Exemplo: Converter um objeto de array JavaScript para JSON

// Criar um array JavaScript:
const minhaBio = ["Oluwatobi", "Sofela", "CodeSweetly"];

// Converter o array minhaBio para JSON (formato de texto):
JSON.stringify(minhaBio);

// A chamada acima retornará: '["Oluwatobi","Sofela","CodeSweetly"]'

Exemplo: Converter um objeto JavaScript para JSON

// Criar um objeto JavaScript:
const minhaBio = {
  firstName: "Oluwatobi",
  lastName: "Sofela",
  company: "CodeSweetly",
};

// Converter o objeto minhaBio para JSON (formato de texto):
JSON.stringify(minhaBio);

// A chamada acima retornará:
// '{"firstName":"Oluwatobi","lastName":"Sofela","company":"CodeSweetly"}'

Se o objeto JavaScript que você deseja converter contiver uma função, nesse caso, JSON.stringify() removerá a função (e sua chave).

JSON.stringify() remove funções de um objeto JavaScript porque não pode converter uma função para um texto JSON.

Exemplo: Converter um objeto JavaScript contendo uma função para JSON

// Criar um objeto JavaScript:
const minhaBio = {
  firstName: "Oluwatobi",
  lastName: function () {
    return "Sofela";
  },
  company: "CodeSweetly",
};

// Converter o objeto minhaBio para JSON (formato de texto):
JSON.stringify(minhaBio);

// A chamada acima retornará:
// '{"firstName":"Oluwatobi","company":"CodeSweetly"}'

Como impedir que JSON.stringify() remova a função de um objeto

Você pode evitar a remoção da função do seu objeto convertendo-a em uma string antes de chamar JSON.stringify().

Aqui está um exemplo:

// Criar um objeto JavaScript:
const minhaBio = {
  firstName: "Oluwatobi",
  lastName: function () {
    return "Sofela";
  },
  company: "CodeSweetly",
};

// Converter a função lastName para uma string:
minhaBio.lastName = minhaBio.lastName.toString();

// Converter o objeto minhaBio para JSON (formato de texto):
JSON.stringify(minhaBio);

// A chamada acima retornará:
// '{"firstName":"Oluwatobi","lastName":"function () {\n return \"Sofela\";\n }","company":"CodeSweetly"}'

OBSERVAÇÃO, é melhor evitar funções em JSON porque:

Uma função convertida em string perderá seu escopo. Será necessário usar o método eval() não seguro para converter uma função convertida em string de volta para uma função regular.

Como Converter um Texto JSON para um Objeto JavaScript

O objeto global JSON do JavaScript contém um método chamado parse() para converter um texto JSON em um objeto JavaScript.

INFO: A conversão de dados JSON para um objeto JavaScript é chamada de desserialização.

Exemplo: Converter um texto JSON para um objeto JavaScript

/ Criar um texto JSON:
const minhaBio = '{"firstName":"Oluwatobi","lastName":"Sofela","company":"CodeSweetly"}';

// Converter o texto JSON minhaBio para um objeto JavaScript:
JSON.parse(minhaBio);

// A chamada acima retornará:
{ firstName: "Oluwatobi", lastName: "Sofela", company: "CodeSweetly" };

Vamos ver outro exemplo.

Exemplo: Converter um texto JSON para um array JavaScript

// Criar um texto JSON:
const minhaBio = '["Oluwatobi","Sofela","CodeSweetly"]';

// Converter o array minhaBio para JSON (formato de texto):
JSON.parse(minhaBio);

// A chamada acima retornará:
["Oluwatobi", "Sofela", "CodeSweetly"];

Lembre-se de que um texto JSON é diferente de um objeto JSON. Vamos discutir suas diferenças.

JSON Text vs. JSON Object: Qual a Diferença?

JSON Text:

  • Um texto JSON é uma representação em formato de string de dados para transmitir conteúdo entre clientes e servidores.
  • É simplesmente uma sequência de caracteres que segue a sintaxe do JSON.
  • Exemplo de texto JSON: '{"firstName":"John","lastName":"Doe","age":30}'

JSON Object:

  • Um objeto JSON refere-se ao objeto global embutido no JavaScript, que contém métodos para serialização e desserialização.
  • O objeto JSON em JavaScript oferece os métodos stringify() para converter objetos JavaScript em texto JSON e parse() para converter texto JSON de volta para objetos JavaScript.
  • Exemplo de utilização: JSON.stringify(objeto) e JSON.parse(textoJSON).
  • Pode conter dados estruturados usando a notação de objetos, arrays, strings, números, booleanos e valores nulos.

Principais Diferenças:

  1. Formato vs. Objeto Global: O texto JSON é uma representação em string de dados, enquanto o objeto JSON em JavaScript é o objeto global que fornece funcionalidades para manipular dados JSON.
  2. Transmissão de Dados vs. Manipulação de Dados: O texto JSON é utilizado principalmente para transmitir dados entre clientes e servidores, enquanto o objeto JSON em JavaScript é usado para manipular e trabalhar com dados JSON no lado do cliente.
  3. Simples Sequência de Caracteres vs. Objeto Estruturado: Um texto JSON é uma simples sequência de caracteres formatada de acordo com a sintaxe JSON, enquanto um objeto JSON em JavaScript é uma estrutura de dados que pode incluir objetos, arrays e outros tipos de dados.
  4. Serialização e Desserialização: Enquanto o texto JSON é usado para serialização (converter um objeto em uma string), o objeto JSON em JavaScript oferece métodos para ambas as operações, sendo usado para desserialização (converter uma string JSON de volta para um objeto).

Em resumo, o texto JSON é uma representação de dados em string, enquanto o objeto JSON em JavaScript é o mecanismo embutido que fornece métodos para trabalhar com essa representação. Ambos desempenham papéis diferentes no processo de comunicação e manipulação de dados.

JSON Text vs. JavaScript Object: Qual a Diferença?

JSON texts e objetos JavaScript são quase idênticos, mas apresentam algumas diferenças sutis.

Citação em um JSON text vs. Objeto JavaScript

  • As chaves e strings em um JSON devem ser duplamente citadas.
  • As chaves em JavaScript podem ser citadas com aspas simples, duplas, sem citação ou números.
  • Além disso, os valores de string em JavaScript podem ser citados com aspas simples.

Exemplo

// JSON text com um par chave/valor:
{ "name": "CodeSweetly" }

// Objeto JavaScript com um par chave/valor:
{ name: 'CodeSweetly' }

// JSON permite aspas simples apenas em torno do texto JSON inteiro, como abaixo:
'{"name": "CodeSweetly"}'

Tipos de valor permitidos em um JSON text vs. Objeto JavaScript

Os valores em JSON podem ser:

  • String (entre aspas duplas)
  • Número
  • Objeto JSON
  • Array JSON
  • Booleano
  • Nulo

OBSERVAÇÃO: Os valores em JSON não podem ser uma função, data ou indefinido.

Os valores de um objeto JavaScript podem ser:

  • Qualquer um dos seis (6) valores JSON
  • Função
  • Data
  • Indefinido

Vírgula final em um JSON text vs. Objeto JavaScript

JSON proíbe o uso de vírgulas finais, enquanto JavaScript o permite.

Exemplo:

// JSON proíbe vírgulas finais:
const company = { "name": "CodeSweetly" }

// JavaScript permite vírgulas finais:
const company = { name: 'CodeSweetly', }

JSON vs. XML: Qual a Diferença?

JSON e XML são formatos populares para a transmissão de dados entre clientes (páginas web) e servidores. Abaixo estão sete diferenças-chave entre esses dois formatos de troca de dados.

  1. Facilidade de Análise (Parsing):
  2. JSON é mais fácil de analisar. Uma função JavaScript padrão pode analisar JSON, enquanto é necessário usar um analisador XML para analisar XML.
  3. Desserialização para Objetos JavaScript:
  4. É fácil desserializar JSON para objetos JavaScript nativos. No entanto, é necessário código personalizado para desserializar XML.
  5. Velocidade e Facilidade de Uso em Aplicações AJAX:
  6. JSON é mais rápido e mais fácil de usar em aplicações AJAX.
  7. Uso de Arrays:
  8. JSON pode usar arrays, enquanto XML não suporta arrays diretamente.
  9. Leitura e Escrita Rápidas:
  10. Ler e escrever JSON é mais rápido do que XML.
  11. Tamanho do Código:
  12. JSON é geralmente mais curto que XML.
  13. Uso de Tags de Fim:
  14. XML utiliza tags de fim, enquanto JSON não as utiliza.

Aqui está um exemplo de código JSON que define um objeto "children" contendo uma matriz de quatro objetos "child":

{
  "children": [
    { "name": "Oluwatobi", "bestColor": "Blue" },
    { "name": "Grace", "bestColor": "Pink" },
    { "name": "Mary", "bestColor": "Green" },
    { "name": "Sofela", "bestColor": "White" }
  ]
}

E aqui está o equivalente XML do trecho JSON acima:

<children>
  <child>
    <name>Oluwatobi</name> <bestColor>Blue</bestColor>
  </child>
  <child>
    <name>Grace</name> <bestColor>Pink</bestColor>
  </child>
  <child>
    <name>Mary</name> <bestColor>Green</bestColor>
  </child>
  <child>
    <name>Sofela</name> <bestColor>White</bestColor>
  </child>
</children>

É possível observar que o trecho JSON é mais limpo e curto.

Sugestão de Cursos

Descubra o caminho para se tornar um especialista em programação web. Aprenda HTML, CSS, JavaScript e os principais frameworks nesta jornada emocionante. Com instrutores experientes e materiais práticos, você desenvolverá habilidades práticas para criar sites impressionantes e aplicativos interativos. Impulsione sua carreira na indústria de tecnologia e abra portas para oportunidades de emprego lucrativas. Garanta sua vaga hoje mesmo e inicie sua jornada para se tornar um desenvolvedor web de sucesso.

Curso de Node.js, React e React Native

Método Para Aprender a Programar do Absoluto ZERO com Node.js, React e React Native.

As tecnologias ensinadas no curso são responsáveis por muitas vagas no mercado de trabalho.

Além da alta demanda, os salários vão de R$47.000,00 até R$197.000,00 anuais tendo empresas que possibilitam o trabalho remoto e até vagas Internacionais.

Para que você possa estar apto a preencher uma dessas vagas eu vou te apresentar o passo a passo para você se tornar um verdadeiro expert nessas tecnologias.

O curso te dará o passo a passo de como criar estruturar de um sistema do zero com Node.js, React e React Native.

Saiba mais sobre o curso de Node.js, React e React Native.

AdsTerra, Junte-se ao AdsTerra