Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida a respeito da conversão do json.

Eu não entendi o motivo de criarmos uma classe InfoGamerJson, converter o json para uma lista de objetos dessa classe e depois converter os elementos da lista para objetos do tipo Gamer. Porque não fazer:

val meuGamerTipo = object : TypeToken<List>() {}.type

val listaGamer:List = gson.fromJson(json, meuGamerTipo)

Diretamente?

2 respostas
solução!

Oi Ailton, tudo bem?

A razão pela qual criamos a classe InfoGamerJson, convertemos o JSON para uma lista de objetos dessa classe e depois convertemos os elementos da lista para objetos do tipo Gamer é para realizar a tradução dos dados que estão no arquivo JSON para o formato que queremos receber na nossa aplicação.

Essa conversão é necessária porque a classe ConsumoApi retorna InfoGamerJson, mas o que queremos receber é o Gamer. Portanto, precisamos fazer essa transformação.

Utilizando o .map, conseguimos realizar essa conversão de forma simples e eficiente. No código que você mencionou, a lista listaGamer é mapeada e cada objeto infoGamerJson é transformado em um objeto Gamer, utilizando os atributos correspondentes.

val listaGamerConvertida = listaGamer.map { infoGamerJson -> Gamer(infoGamerJson.nome, infoGamerJson.email, infoGamerJson.dataNascimento, infoGamerJson.usuario) }

return listaGamerConvertida

Essa é uma operação comum na programação, onde precisamos transformar listas de um determinado tipo de elemento em outro tipo. O .map é uma propriedade de List<> que nos permite realizar essas manipulações e conversões necessárias.

Um abraço e bons estudos.

Entendido, Lorena! Muito obrigado :)