Exercício 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.
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public record Pessoa1(String nome, int idade, String cidade) {
@Override
public String toString() {
return "Nome: " + nome + " (" + idade + ")\n" + "Cidade: " + cidade;
}
}
class Main {
public static void main(String[] args) {
String json = """
{
"Nome" : "Michael",
"Idade" : 30,
"Cidade" : "Salvador",
}""";
Gson gson = new GsonBuilder()
.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
.create();
Pessoa1 pessoa = gson.fromJson(json, Pessoa1.class);
System.out.println(pessoa);
}
}
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. Consulte a documentação da biblioteca Gson para flexibilizar a conversão.
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public record Pessoa1(String nome, int idade, String cidade) {
@Override
public String toString() {
return "Nome: " + nome + " (" + idade + ")\n" + "Cidade: " + cidade;
}
}
class Main {
public static void main(String[] args) {
String json = """
{
"Nome" : "Michael",
"Idade" : 30,
"Cidade" : "Salvador",
"Estado" : "BA"
}""";
Gson gson = new GsonBuilder()
.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
.setLenient()
.create();
Pessoa1 pessoa = gson.fromJson(json, Pessoa1.class);
System.out.println(pessoa);
}
}
Consegue me dizer o que mudou?
Essa resolução de utilizar o .setLenient() confesso que peguei do instrutor, porém não encontrei nada falando sobre nem na própria documentação do gson. E também por alguns testes que realizei não consegui identificar o que alterou na consulta ou na conversão dos dados.