1
resposta

Expected BEGIN_OBJECT but was BEGIN_ARRAY

No código aparentemente a instancia do objeto está criando um array de objetos e não o objeto em si, estou tentando encontrar alguma ajuda no repositório do GSON, mas está difícil

package org.example

import InfoJogo
import com.google.gson.Gson
import java.net.URI
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse.BodyHandlers
import java.util.*

fun main() {
    val leitor = Scanner(System.`in`)
    println("Digite o código do jogo:")
    val busca = leitor.nextLine()
    val endereco = "https://www.cheapshark.com/api/1.0/games?id=$busca"
    val client: HttpClient = HttpClient.newHttpClient()
    val request = HttpRequest.newBuilder()
        .uri(URI.create(endereco))
        .build()
    val response = client
        .send(request, BodyHandlers.ofString())
    val json = response.body()
    println(json)

    val gson = Gson()

    //Aqui ocorreu a desserialização do jogo
    val meuInfoJogo = gson.fromJson(json, InfoJogo::class.java)

     try{
         val meuJogo = Jogo(meuInfoJogo.info.title, meuInfoJogo.info.thumb)
         print(meuJogo)
     }catch(ex: NullPointerException){
         println("Erro encontrado")
     }

}

Esse é código rodando e o erro está na linha

   val meuInfoJogo = gson.fromJson(json, InfoJogo::class.java)
1 resposta

Ola Boa tarde

Tive esse mesmo problema coloquei essa linha dentro do try resolveu. Ficou assim !

try{
          val meuInfoJogo = gson.fromJson(json, InfoJogo::class.java)
         val meuJogo = Jogo(meuInfoJogo.info.title, meuInfoJogo.info.thumb)
         print(meuJogo)
     }catch(ex: NullPointerException){
         println("Erro encontrado")
     }