1
resposta

Desafio concluído!

package br.com.alura.desafiopratico02.principal;

import br.com.alura.desafiopratico02.modelos.Livro;
import br.com.alura.desafiopratico02.modelos.Pessoa;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

import java.lang.reflect.Type;

public class Principal {
    public static void main(String[] args) {
        String json = """
                {
                    "nome" : "Pedro",
                    "idade" : 20,
                    "cidade" : "Brasília"
                }
                """;

        // Configurando o GSON para ser leniente com campos extras/ausentes
        Gson gson = new GsonBuilder()
                .setLenient()
                .serializeNulls()
                .create();

        Pessoa pessoa = gson.fromJson(json, Pessoa.class);

        System.out.println(pessoa);


        String jsonLivro = """
                {
                "titulo": "O auto da compadecida",
                "autor": "Ariano Suassuna",
                "editora": {
                    "nome": "Nova Fronteira"
                    }
                }
                """;
        Gson gsonLivro = new GsonBuilder()
                .setLenient()
                .serializeNulls()
                .create();

        Livro livro = gsonLivro.fromJson(jsonLivro, Livro.class);

        System.out.println(livro);
    }
}
package br.com.alura.desafiopratico02.modelos;

public record Livro(String titulo, String autor, Editora editora) {
}
package br.com.alura.desafiopratico02.modelos;

public record Pessoa(String nome, int idade, String cidade) {
}
package br.com.alura.desafiopratico02.modelos;

public record Editora(String nome) {
}
1 resposta

Oi, Bernardo! Como vai?

Agradeço por compartilhar.

Gostei da sua implementação, ficou bem organizada e clara. Importante destacar como você utilizou records para representar os dados e a configuração do GsonBuilder para lidar com possíveis variações no JSON. Isso mostra um bom entendimento da proposta da atividade e da biblioteca.

Continue explorando esse tipo de conversão, isso fortalece bastante sua base em consumo de APIs.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!