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) {
}