Exercício 1:
import com.google.gson.Gson;
record Pessoa(String nome, int idade, String cidade) {}
public class ConversaoJsonParaObjeto {
public static void main(String[] args) {
String jsonPessoa = "{\"nome\":\"Rodrigo\",\"idade\":20,\"cidade\":\"Brasília\"}";
Gson gson = new Gson();
Pessoa pessoa = gson.fromJson(jsonPessoa, Pessoa.class);
System.out.println("Objeto Pessoa: " + pessoa);
}
}
No exercício 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. No caso, um campo está ausente, que é a idade.
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
record Pessoa(String nome, int idade, String cidade) {}
public class ConversaoJsonParaObjetoFlexivel {
public static void main(String[] args) {
String jsonPessoa = "{\"nome\":\"Rodrigo\",\"cidade\":\"Brasília\"}";
Gson gson = new GsonBuilder().setLenient().create();
Pessoa pessoa = gson.fromJson(jsonPessoa, Pessoa.class);
System.out.println("Objeto Pessoa: " + pessoa);
}
}
Não entendi o que a linha "Gson gson = new GsonBuilder().setLenient().create();" faz exatamente, pois nos meus testes, o resultado do exercício 2 foi exatamente o mesmo utilizando
Gson gson = new GsonBuilder().setLenient().create();
ou utilizando
Gson gson = new Gson();
Resultado: Objeto pessoa: Pessoa[nome=Cido, idade=0, cidade=Santo André]