Para alterar o desafio 1 para o que pedia para o desafio 2, baixei o converter-gson como dependência e inclui mais um atributo na classe Pessoa (profissão) mas foi necessário incluí-la como variável e também no construtor Pessoa com esse atributo (profissão) para o código rodar e dar esse novo resultado. Então, conclui que "a conversão de um JSON mesmo se alguns campos estiverem ausentes ou se houver campos adicionais não estiverem representados no objeto Pessoa" como diz na orientação do exercício, não passa pela inclusão do arquivo converter-gson como dependênca do código como eu fiz.
Na 'opinião do instrutor' os atributos estão colocados um ao lado do outro no "modelo" Tipo seguido do valor(vou dizer assim) separados por uma barra invertida, seguido de aspas duplas (") mas esse jeito de referenciar não foi feito nos vídeos das aulas e por isso, acaba causando confusão com a maneira que foi mostrado na aula.
Sinceramente, me sinto frustrada quando vejo o vídeo da lição de um jeito, tento fazer o exercicio do jeito que foi ensinado e me deparo com soluções muito diferentes, mesmo que até sejam mais enxutas. Mas pra quem está aprendendo do zero como eu, se torna chato e cansativo ter que imaginar o porque foi feito desse "novo jeito' diferente do vídeo. Para isso sugiro que se coloque material complementar com explicações extras DA NOVA SOLUÇÃO E MAIS EXERCICIOS PARA SE TREINAR A NOVA SUGESTÃO DA SOLUÇÃO.
Lógico que é bom saber que existem várias maneiras às vezes de se chegar ao mesmo resultado mas para um iniciante é necessário dar mais suporte até ele chegar lá.
Enfim, envio a tela do resultado seguindo as instruções do vídeo. Mas embora tenha compilado certo, não soube fazer uso da "minhaPessoaR". Gostaria de uma orientação de como poderia ter feito uso dela, se possivel. Agradeço muito.
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class UtiBibliotExtPrincipal {
public static void main(String[] args){
Pessoa minhaPessoa= new Pessoa("Selma", "75 anos", "Funcionária Pública", "Salvador");
String json = "";
System.out.println(json);
Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).create();
PessoaR minhaPessoaR = gson.fromJson(json, PessoaR.class);
System.out.println("Informações da pessoa:");
System.out.println(minhaPessoa);
}
}
public class Pessoa {
private String nome;
private String idade;
private String profissao;
private String cidade;
public Pessoa(String nome, String idade, String profissao, String cidade) {
this.nome = nome;
this.idade = idade;
this.profissao = profissao;
this.cidade = cidade;
}
@Override
public String toString() {
return "Pessoa{" +
"nome='" + nome + '\'' +
", idade='" + idade + '\'' +
", profissão='" + profissao + '\'' + ", cidade='" + cidade + '\'' + '}';
}
}
public record PessoaR(String nome, String idade, String profissao, String cidade) {
}