Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Desafio: hora da prática] Está correto?

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é
1 resposta
solução!

Oi, Luiz! Tudo bem?

Ótimo código, parabéns! Espero que continue a explorar os conteúdos para ampliar seu conhecimento e desenvolver novas habilidades. Caso tenha restado alguma dúvida em relação a qualquer conteúdo do curso ou atividade, não hesite em perguntar, estou disponível e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!