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 leitura = Scanner(System.`in`)
println("Digite um código de jogo para buscar:")
val busca = leitura.nextLine()
val client: HttpClient = HttpClient.newHttpClient()
val request = HttpRequest.newBuilder()
.uri(URI.create("https://www.cheapshark.com/api/1.0/games?id=$busca"))
.build()
val response = client
.send(request, BodyHandlers.ofString())
val json = response.body()
//println(json)
val gson = Gson()
val meuInfoJogo = gson.fromJson(json, InfoJogo::class.java)
// // try { // val meuJogo = Jogo(meuInfoJogo.info.title, meuInfoJogo.info.thumb) // println(meuJogo) // }catch (ex: NullPointerException){ // print("jogo inexistente. tente outro código!") // } var meuJogo: Jogo? = null
val resultado = runCatching {
meuJogo = Jogo(
meuInfoJogo.info.title,
meuInfoJogo.info.thumb
)
}
resultado.onFailure {
println("Jogo inexistente. Tente outro código.")
}
resultado.onSuccess {
println("Deseja inserir uma descrição personalizada? S/N:")
val opcao = leitura.nextLine()
if (opcao.equals("s", true)) {
println("Insira a descrição personalizada do jogo:")
val descricaoPersonalizada = leitura.nextLine()
meuJogo?.descricao = descricaoPersonalizada
} else {
meuJogo?.descricao = meuJogo?.titulo
}
println(meuJogo)
}
resultado.onSuccess {
println("Busca finalizada com sucesso!")
}
}
tratei a exceção como mostrado no video e ela continua aparecendo
"C:\Program Files\Java\jdk-17\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.1\lib\idea_rt.jar=57559:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.1\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\fabio\IdeaProjects\AluGames\target\classes;C:\Users\fabio.m2\repository\org\jetbrains\kotlin\kotlin-stdlib-jdk8\1.8.0\kotlin-stdlib-jdk8-1.8.0.jar;C:\Users\fabio.m2\repository\org\jetbrains\kotlin\kotlin-stdlib\1.8.0\kotlin-stdlib-1.8.0.jar;C:\Users\fabio.m2\repository\org\jetbrains\kotlin\kotlin-stdlib-common\1.8.0\kotlin-stdlib-common-1.8.0.jar;C:\Users\fabio.m2\repository\org\jetbrains\annotations\13.0\annotations-13.0.jar;C:\Users\fabio.m2\repository\org\jetbrains\kotlin\kotlin-stdlib-jdk7\1.8.0\kotlin-stdlib-jdk7-1.8.0.jar;C:\Users\fabio.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar MainKt Digite um código de jogo para buscar: 12 Exception in thread "main" com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $ at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:397) at com.google.gson.Gson.fromJson(Gson.java:1227) at com.google.gson.Gson.fromJson(Gson.java:1137) at com.google.gson.Gson.fromJson(Gson.java:1047) at com.google.gson.Gson.fromJson(Gson.java:982) at MainKt.main(Main.kt:28) at MainKt.main(Main.kt) Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $ at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:393) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:386) ... 6 more
Process finished with exit code 1