1
resposta

Meu código está exatamente igual ao da aula mas o erro é diferente

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

1 resposta

Olá, Gabriel! Tudo bem?

Pelo que você descreveu, parece que o erro está relacionado ao tipo de dado que o Gson está tentando desserializar. A exceção JsonSyntaxException indica que o Gson esperava um objeto JSON, mas encontrou um array JSON.

Isso pode acontecer se a resposta da API para o ID 174 for um array em vez de um objeto. Para resolver isso, você pode verificar o tipo de resposta antes de tentar desserializá-la. Aqui está uma sugestão de como lidar com isso:

  1. Verifique o tipo de resposta: Antes de desserializar, veja se a resposta é um objeto ou um array.

  2. Ajuste a desserialização: Se a resposta for um array, talvez você precise desserializar para uma lista de objetos.

Aqui está um exemplo de como você pode ajustar seu código:

val json = response.body()
println(json)

val gson = Gson()
try {
    // Tenta desserializar como um objeto
    val meuJogo = gson.fromJson(json, InfoJogo::class.java)
    println(meuJogo)
} catch (e: JsonSyntaxException) {
    // Se falhar, tenta desserializar como uma lista
    val jogos: List<InfoJogo> = gson.fromJson(json, Array<InfoJogo>::class.java).toList()
    jogos.forEach { jogo ->
        println(jogo)
    }
}

Essa abordagem tenta primeiro desserializar como um objeto. Se falhar, tenta como uma lista. Ajuste conforme necessário para o seu caso específico.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.