1 - Crie uma classe Pessoa usando o conceito de Record em Java, com atributos como nome, idade e cidade. Em seguida, implemente um programa que utiliza a biblioteca Gson para converter um JSON representando uma pessoa em um objeto do tipo Pessoa. 2 - Modifique o programa do Exercício anterior para permitir a conversão de um JSON mesmo se alguns campos estiverem ausentes ou se houver campos adicionais não representados no objeto Pessoa. Consulte a documentação da biblioteca Gson para flexibilizar a conversão.
package Challenges02.exercise01;
public record Person(String name, int age, String city) {
@Override
public String toString() {
return "Name: " +name+ "\n" +
"Age: " +age+ "\n" +
"City: " +city;
}
}
package Challenges02.exercise01;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class Main {
public static void main(String[] args) {
var gson = new GsonBuilder()
.serializeNulls()
.create();
String jsonCompleted = """
{
"name" : "Rossini",
"age" : 20,
"city" : "Cerqueira César"
}
""";
String jsonMoreElements = """
{
"name" : "Isaac",
"age" : 38,
"gender" : "man",
"city" : "Avaré"
}
""";
String jsonMissingElements = """
{
"name" : "Joel",
"age" : 52
}
""";
//json completed
var myPerson01 = gson.fromJson(jsonCompleted, Person.class);
System.out.println(myPerson01+ "\n");
//json with more elements
var myPerson02 = gson.fromJson(jsonMoreElements, Person.class);
System.out.println(myPerson02+ "\n");
//json missing elements
var myPerson03 = gson.fromJson(jsonMissingElements, Person.class);
System.out.println(myPerson03);
}
}
Saída esperada:
Name: Rossini
Age: 20
City: Cerqueira César
Name: Isaac
Age: 38
City: Avaré
Name: Joel
Age: 52
City: null
3 - Crie uma classe Livro que contenha atributos como título, autor e um objeto representando a editora. Em seguida, implemente um programa que utiliza a biblioteca Gson para converter um JSON aninhado representando um livro em um objeto do tipo Livro.
package Challenges02.exercise02;
public record Book(String title, String author, Publisher publisher) {
@Override
public String toString() {
return "Book's title: " +title+"\n"+
"Author: " +author +"\n"+
publisher;
}
}
package Challenges02.exercise02;
public record Publisher(String name, String city) {
@Override
public String toString() {
return "Publisher: " +name+"\n"+
"Where to find: " +city;
}
}
package Challenges02.exercise02;
import com.google.gson.Gson;
public class Main {
public static void main(String[] args) {
var gson = new Gson();
String jsonBook = """
{
"title" : "Five Nights at Freddy's Survival Logbook",
"author" : "Scott Cawthon",
"publisher" : {
"name" : "Filos",
"city" : "Avaré"
}
}
""";
Book myBook = gson.fromJson(jsonBook, Book.class);
System.out.println(myBook);
}
}
Saída esperada:
Book's title: Five Nights at Freddy's Survival Logbook
Author: Scott Cawthon
Publisher: Filos
Where to find: Avaré