Conceitos abordados: Utilização do conceito de Record em Java para representar dados de maneira concisa. Utilização da biblioteca Gson para converter objetos JSON em objetos Java. Flexibilidade no processo de deserialização para lidar com campos ausentes ou adicionais no JSON. Estruturas de dados aninhadas para lidar com objetos complexos no JSON, como um livro com uma editora.
import com.google.gson.Gson;
// Criando o Record Pessoa public record Pessoa(String nome, int idade, String cidade) { }
class Editora { String nome; String endereco;
// Construtores, getters e setters (se necessário)
public Editora(String nome, String endereco) {
this.nome = nome;
this.endereco = endereco;
}
}
// Classe Livro com a Editora como atributo public class Livro { String titulo; String autor; Editora editora;
// Construtores, getters e setters (se necessário)
public Livro(String titulo, String autor, Editora editora) {
this.titulo = titulo;
this.autor = autor;
this.editora = editora;
}
}
public class Main { public static void main(String[] args) {
// Atividade 1 - Criando a classe Pessoa e convertendo o JSON para um objeto Pessoa
String jsonPessoa = "{\"nome\": \"João\", \"idade\": 25, \"cidade\": \"São Paulo\"}";
Gson gson = new Gson();
// Convertendo o JSON para um objeto Pessoa
Pessoa pessoa = gson.fromJson(jsonPessoa, Pessoa.class);
System.out.println(pessoa); // Exibe a pessoa criada a partir do JSON
// Atividade 2 - Modificando o programa para lidar com campos ausentes
// JSON sem o campo "cidade"
String jsonPessoaIncompleto = "{\"nome\": \"João\", \"idade\": 25}";
// Convertendo o JSON para um objeto Pessoa
Pessoa pessoaIncompleta = gson.fromJson(jsonPessoaIncompleto, Pessoa.class);
System.out.println(pessoaIncompleta); // Exibe a pessoa criada, com campos ausentes
// Atividade 3 - Criando a classe Livro com a Editora e tratando um JSON aninhado
String jsonLivro = "{"
+ "\"titulo\": \"Java para Iniciantes\","
+ "\"autor\": \"João Silva\","
+ "\"editora\": {\"nome\": \"Editora ABC\", \"endereco\": \"Rua XYZ, 123\"}"
+ "}";
// Convertendo o JSON para um objeto Livro
Livro livro = gson.fromJson(jsonLivro, Livro.class);
// Exibe as informações do livro
System.out.println("Título: " + livro.titulo);
System.out.println("Autor: " + livro.autor);
System.out.println("Editora: " + livro.editora.nome);
System.out.println("Endereço da Editora: " + livro.editora.endereco);
}
}