2
respostas

[Minha Solução] Desafio 2

Desafio2. 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.Gson;
import com.google.gson.GsonBuilder;

record Pessoa(String nome, int idade, String cidade) {}

public class Principal {
    public static void main(String[] args) {
        //String formato JSON
        String jsonPessoa = "{\"nome\":\"Bradoc\",\"idade\":59,\"cidade\":\"Detroit\",\"estado\":\"Michigan\"}";
        String jsonPessoa2 = "{\"nome\":\"\",\"idade\":61,\"cidade\":\"Southfield\",\"estado\":\"Michigan\"}";

        Gson gson = new GsonBuilder().setLenient().create();
        Pessoa pessoa = gson.fromJson(jsonPessoa, Pessoa.class);

        Gson gson2 = new GsonBuilder().setLenient().create();
        Pessoa pessoa2 = gson2.fromJson(jsonPessoa2, Pessoa.class);

        //Imprimindo Objeto flexivel Pessoa
        System.out.println("Objeto primeira Pessoa: " + pessoa);
        //Impressão valor nome ausente
        System.out.println("Objeto segunda Pessoa: " + pessoa2);
        }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

Boa Carlos! muito bom

Alteração necessária para que o campo 'estado' seja impresso corretamente, é a inclusão do campo estado no record.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Após a correção, o código permanece da seguinte forma:

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

record Pessoa(String nome, int idade, String cidade, String estado) {}

public class Principal {
    public static void main(String[] args) {
        //String formato JSON
        String jsonPessoa = "{\"nome\":\"Bradoc\",\"idade\":59,\"cidade\":\"Detroit\",\"estado\":\"Michigan\"}";
        String jsonPessoa2 = "{\"nome\":\"\",\"idade\":61,\"cidade\":\"Southfield\",\"estado\":\"Michigan\"}";

        Gson gson = new GsonBuilder().setLenient().create();
        Pessoa pessoa = gson.fromJson(jsonPessoa, Pessoa.class);

        Gson gson2 = new GsonBuilder().setLenient().create();
        Pessoa pessoa2 = gson2.fromJson(jsonPessoa2, Pessoa.class);

        //Imprimindo Objeto flexivel Pessoa
        System.out.println("Objeto primeira Pessoa: " + pessoa);
        //Impressão valor nome ausente
        System.out.println("Objeto segunda Pessoa: " + pessoa2);
    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade