3
respostas

[Minha Solução] Desafio 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.Gson;

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\"}";
        Gson gson = new Gson();
        Pessoa pessoa = gson.fromJson(jsonPessoa, Pessoa.class);

        String jsonPessoa2 = "{\"nome\":\"Rambo\",\"idade\":61,\"cidade\":\"Southfield\",\"estado\":\"Michigan\"}";
        Gson gson1 = new Gson();
        Pessoa pessoa1 = gson1.fromJson(jsonPessoa2, Pessoa.class);

        //Imprimindo Objeto Pessoa
        System.out.println("Objeto primeira pessoa: " + pessoa);
        System.out.println("Objeto segunda pessoa: " + pessoa1);
    }
}

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

3 respostas

O codigo ta muito bom, Carlos! Mas e o campo 'estado' ali no json?

Opa, obrigado pela observação Gabriel! :)

A ausência do campo 'estado' ocorre devido a não declaração no record, responsável pelo mapeamento das variáveis. Após a correção o código fica da seguinte maneira:


import com.google.gson.Gson;

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\"}";
        Gson gson = new Gson();
        Pessoa pessoa = gson.fromJson(jsonPessoa, Pessoa.class);

        String jsonPessoa2 = "{\"nome\":\"Rambo\",\"idade\":61,\"cidade\":\"Southfield\",\"estado\":\"Michigan\"}";
        Gson gson1 = new Gson();
        Pessoa pessoa1 = gson1.fromJson(jsonPessoa2, Pessoa.class);

        //Imprimindo Objeto Pessoa
        System.out.println("Objeto primeira pessoa: " + pessoa);
        System.out.println("Objeto segunda pessoa: " + pessoa1);
    }
}

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


Resultado final após a correção:

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

Agora sim Carlos! O código está muito bom