Conteúdo do curso
Apresentação do curso
0/1
Curso de JavaScript para Iniciantes: Fundamentos e Prática
Sobre a Aula

Manipulação de dados JSON

 

Seja bem-vindo à segunda aula do módulo 7! Nesta jornada, você se tornará um especialista em JSON, um formato de dados leve e fácil de trocar entre sistemas. Explore como JSON facilita a comunicação entre cliente e servidor em aplicações AJAX, permitindo o envio e recebimento de dados de forma eficiente e interativa.

Sintaxe do JSON

O JSON (JavaScript Object Notation) é um formato de representação de dados que é amplamente utilizado em aplicações web.

Ele é baseado na sintaxe do JavaScript e é muito semelhante à forma como escrevemos objetos e arrays no JavaScript.

Imagine o JSON como um livro de receitas, onde você tem diferentes ingredientes e suas respectivas quantidades e instruções de preparo.

Cada receita é composta por um conjunto de informações que são organizadas em pares de chave e valor. As chaves representam os nomes dos ingredientes, e os valores representam as informações associadas a cada ingrediente.

A sintaxe básica do JSON consiste em colocar os pares de chave e valor dentro de chaves {} para representar um objeto, ou dentro de colchetes [] para representar um array.

Cada par de chave e valor é separado por vírgula.

Por exemplo, para representar uma pessoa com nome, idade e endereço, teríamos o seguinte JSON:

{
  "nome": "João",
  "idade": 30,
  "endereco": {
    "rua": "Rua das Flores",
    "numero": 123
  }
}

Neste exemplo, temos um objeto que possui três pares de chave e valor: “nome” com o valor “João“, “idade” com o valor 30 e “endereco” com um objeto aninhado contendo as chaves “rua” e “numero“.

A sintaxe do JSON é bastante simples e legível, o que o torna muito utilizado para transferir e armazenar dados.

É importante lembrar que, ao trabalhar com JSON, os nomes das chaves e os valores devem estar entre aspas duplas.

Parsing JSON

O parsing JSON é o processo de converter uma string JSON em um objeto JavaScript. É como se estivéssemos “traduzindo” a informação escrita em JSON para que possamos manipulá-la facilmente em nosso código JavaScript.

Podemos fazer uma analogia com a tradução de um livro. Imagine que você tenha um livro escrito em um idioma desconhecido e você queira entender o conteúdo desse livro.

Para isso, você contrata um tradutor que irá ler o livro e transformar o texto em um idioma que você entende.

Da mesma forma, quando realizamos o parsing JSON, estamos “contratando” o JavaScript para ler a string JSON e transformá-la em um objeto que podemos utilizar em nosso código.

Para fazer o parsing JSON em JavaScript, utilizamos o método JSON.parse(). Esse método recebe a string JSON como argumento e retorna um objeto JavaScript equivalente.

Por exemplo, se tivermos a seguinte string JSON:

'{"nome": "João", "idade": 30}'
Podemos fazer o parsing dessa string da seguinte forma:
const jsonString = '{"nome": "João", "idade": 30}';
const objeto = JSON.parse(jsonString);

Após o parsing, a variável objeto irá conter um objeto JavaScript com as propriedades “nome” e “idade“, que podemos acessar normalmente.

O parsing JSON é uma etapa importante quando trabalhamos com APIs ou quando recebemos dados de um servidor no formato JSON.

Ele nos permite transformar esses dados em objetos JavaScript para que possamos manipulá-los de forma mais fácil e eficiente.

Acesso a propriedades

Acesso a propriedades é a maneira de obter ou modificar os valores de uma propriedade de um objeto JavaScript. Podemos pensar nas propriedades como as características ou informações associadas a um objeto.

Vamos usar uma analogia com uma caixa de correio para entender o conceito. Imagine que você tenha uma caixa de correio com várias cartas dentro. Cada carta possui um remetente, um destinatário e um conteúdo.

Nesse contexto, a caixa de correio é o objeto e as cartas são as propriedades. Para acessar uma propriedade, você precisa saber o nome da carta que deseja ler ou modificar, como “remetente” ou “conteúdo“.

Em JavaScript, para acessar uma propriedade de um objeto, utilizamos a notação de ponto (.) ou a notação de colchetes ([]).

Por exemplo, se tivermos um objeto chamado carta com a propriedade remetente, podemos acessar o valor dessa propriedade da seguinte forma:

const carta = {
  remetente: "João",
  destinatario: "Maria",
  conteudo: "Olá, como você está?"
};

console.log(carta.remetente); // Saída: "João"

Também podemos utilizar a notação de colchetes para acessar a propriedade:

console.log(carta["remetente"]); // Saída: "João"

Essas formas de acesso são equivalentes e nos permitem obter o valor da propriedade desejada.

Além disso, também podemos modificar o valor de uma propriedade utilizando o mesmo princípio. Basta atribuir um novo valor à propriedade:

carta.remetente = "Carlos";
console.log(carta.remetente); // Saída: "Carlos"

Em resumo, o acesso a propriedades nos permite obter e modificar os valores associados a um objeto JavaScript, utilizando a notação de ponto (.) ou a notação de colchetes ([]).

É como abrir a caixa de correio e ler ou alterar o conteúdo das cartas dentro dela.

Iteração em arrays e objetos JSON

A iteração em arrays e objetos JSON é uma técnica utilizada para percorrer e trabalhar com os elementos presentes em uma lista de valores ou em uma estrutura de dados complexa.

Podemos fazer uma analogia com a ideia de visitar diferentes cidades em um roteiro de viagem.

Imagine que você tem um roteiro com várias cidades a serem visitadas, cada uma com suas características e atrações.

O roteiro pode ser representado por um array ou um objeto JSON, onde cada elemento ou propriedade contém informações sobre uma cidade específica.

Para percorrer todas as cidades do roteiro, podemos usar um laço de repetição, como o for ou o forEach, que nos permite acessar cada cidade uma por uma.

Assim, podemos realizar ações específicas para cada cidade, como tirar fotos, experimentar comidas típicas ou conhecer pontos turísticos.

No caso de um array, o laço for é muito útil. Ele nos permite iterar sobre cada elemento do array, executando um bloco de código para cada iteração.

Podemos usar um contador para acompanhar o índice atual e acessar o elemento correspondente.

No exemplo do roteiro de viagem, podemos usar o laço for para percorrer cada cidade e exibir seu nome:

const roteiro = ["Rio de Janeiro", "Paris", "Nova York", "Tóquio"];
for (let i = 0; i < roteiro.length; i++) {
  console.log(roteiro[i]); // Exibe o nome de cada cidade

}

Já no caso de um objeto JSON, podemos usar o laço for…in para percorrer as propriedades do objeto. Ele nos permite acessar cada propriedade e realizar operações específicas para cada uma delas.

Continuando com o exemplo do roteiro de viagem, se tivermos um objeto JSON com informações detalhadas sobre cada cidade, podemos usar o for…in para exibir os detalhes de cada cidade:

const cidade1 = {
  nome: "Rio de Janeiro",
  populacao: 6710000,
  pontosTuristicos: ["Cristo Redentor", "Pão de Açúcar", "Copacabana"]

};

for (let propriedade in cidade1) {
  console.log(propriedade + ": " + cidade1[propriedade]); // Exibe cada propriedade e seu valor

}

Em resumo, a iteração em arrays e objetos JSON nos permite percorrer e trabalhar com os elementos presentes em uma lista de valores ou em uma estrutura de dados complexa.

É como seguir um roteiro de viagem, visitando cada cidade e realizando atividades específicas em cada uma delas.

Utilizamos laços de repetição, como o for ou o for…in, para acessar os elementos ou propriedades um por um e realizar operações específicas.

Stringify JSON

A operação de Stringify JSON é usada para converter um objeto JavaScript em uma string JSON. Podemos fazer uma analogia com a embalagem de um presente.

Imagine que você tenha um objeto JavaScript que contém várias propriedades e valores, assim como um presente que possui diferentes itens dentro dele.

Para presentear alguém, você precisa embrulhar o presente em papel de presente, criando uma representação visual do seu conteúdo.

Da mesma forma, ao usar o Stringify JSON, você está embrulhando o objeto JavaScript em uma string JSON, criando uma representação textual dos seus dados.

Isso é útil quando você deseja enviar dados para um servidor ou armazená-los em um arquivo, por exemplo.

Durante o processo de Stringify JSON, o objeto JavaScript é convertido em uma sequência de caracteres formatada de acordo com a sintaxe JSON.

As propriedades do objeto se tornam chaves na string JSON, e os valores correspondentes são convertidos em seus respectivos formatos JSON, como strings, números ou booleanos.

Vamos usar um exemplo para ilustrar isso:

const pessoa = {
  nome: "João",
  idade: 25,
  profissao: "Engenheiro"

};

const pessoaJSON = JSON.stringify(pessoa);
console.log(pessoaJSON);

Nesse exemplo, temos um objeto chamado pessoa com diferentes propriedades, como nome, idade e profissão.

Ao aplicar o JSON.stringify(pessoa), o objeto é convertido em uma string JSON, que é armazenada na variável pessoaJSON.

Se exibirmos o valor de pessoaJSON, veremos a representação textual do objeto no formato JSON:

{"nome":"João","idade":25,"profissao":"Engenheiro"}

Observe que todas as propriedades são envolvidas em aspas duplas, e os valores são formatados de acordo com a sintaxe JSON.

Em resumo, o Stringify JSON é um processo que transforma um objeto JavaScript em uma string JSON.

É como embrulhar um presente em papel de presente, criando uma representação textual dos dados contidos no objeto.

Isso é útil para enviar dados para um servidor ou armazená-los em um formato que possa ser facilmente compartilhado ou persistido.

Tratamento de erros

Ao trabalhar com JSON em JavaScript, é importante considerar o tratamento de erros para lidar com situações em que a manipulação do JSON pode falhar.

Vou explicar brevemente como podemos abordar o tratamento de erros ao lidar com JSON.

Uma das situações mais comuns é quando tentamos fazer o parsing de uma string JSON inválida.

Para isso, podemos utilizar o método JSON.parse(), que converte uma string JSON em um objeto JavaScript.

No entanto, se a string não estiver no formato correto, ocorrerá um erro.

Podemos envolver a chamada do JSON.parse() em um bloco try-catch para capturar esse erro.

Caso ocorra uma exceção, o bloco catch será executado, permitindo-nos lidar com o problema de forma apropriada. Por exemplo:

try {
  const jsonStr = '{"nome": "João", "idade": 25}'; // String JSON válida
  const obj = JSON.parse(jsonStr); // Parsing da string JSON
  console.log(obj);

} catch (erro) {
  console.log("Ocorreu um erro ao fazer o parsing do JSON:", erro);

}

Nesse exemplo, temos uma string JSON válida que é convertida para um objeto JavaScript usando o JSON.parse().

Caso ocorra algum erro durante o parsing, o bloco catch será acionado e a mensagem de erro será exibida.

Outra situação em que podemos aplicar o tratamento de erros é ao utilizar o método JSON.stringify(), que converte um objeto JavaScript em uma string JSON.

É possível ocorrer erros se o objeto contiver valores não serializáveis, como funções ou referências circulares.

Para lidar com esses erros, podemos novamente envolver a chamada do método JSON.stringify() em um bloco try-catch e tratar o erro adequadamente. Veja um exemplo:

try {

  const obj = { nome: "Maria", idade: 30, dataNascimento: new Date() }; // Objeto com valor não serializável
  const jsonStr = JSON.stringify(obj); // Conversão para string JSON
  console.log(jsonStr);

} catch (erro) {
  console.log("Ocorreu um erro ao converter o objeto para JSON:", erro);

}

Nesse caso, temos um objeto com uma propriedade dataNascimento que contém um valor não serializável (um objeto Date). Se tentarmos converter esse objeto para uma string JSON usando o JSON.stringify(), ocorrerá um erro.

O bloco catch será acionado, permitindo-nos tratar o erro de acordo com nossas necessidades.

Em resumo, o tratamento de erros relacionado ao JSON no JavaScript envolve a utilização de blocos try-catch ao fazer o parsing de uma string JSON inválida com JSON.parse() e ao converter objetos em strings JSON com JSON.stringify().

Desafio:

  1. Crie uma página web que utiliza AJAX para buscar dados de uma API externa que retorna dados em formato JSON.
  2. Analise os dados JSON e exiba-os na página web de forma organizada.

Essa abordagem nos permite capturar e tratar erros de forma adequada, garantindo uma execução mais controlada e robusta de nosso código.

Agora que você já aprendeu sobre a sintaxe e manipulação do JSON, incluindo o parsing, acesso a propriedades, iteração, stringify e tratamento de erros, estamos prontos para dar um próximo passo em nossos conhecimentos.

Vamos explorar o uso de APIs para obter dados externos.

Entrar na conversa
Rolar para cima