1
resposta

Dúvida no exercício 2

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é]

1 resposta

Estou com a mesma duvida, com ou sem o methodo Lenient o resultado é o mesmo.