1
resposta

Exception in thread "main"

ao seguir o passo a passo coretamente na ultima execução onde as tutoras conseguem o resultado esperado na linha 22 da aula 08 de do topico 02 modelando aplicação, acaba retornando o erro 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 org.example.MainKt.main(Main.kt:26) at org.example.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

1 resposta

Opa, Rogel.

Parece que sua dúvida é bem parecida com esta aqui. Depois dá uma olhadinha nela para ver se consegue solucionar sua dúvida.

Em resumo, o que pode estar atrapalhando é a diferença entre os atributos que vem do JSON e os atributos que estão no data class, eles devem ser iguais. E como no foi citado no tópico acima, bem provável que o dado com problema deve ser um Array.

Sugiro ver o tópico que indiquei, eu explico com mais detalhes lá, caso não tenha conseguido clicar no link, o tópico é este aqui:

https://cursos.alura.com.br/forum/topico-bug-um-erro-muito-maior-do-que-o-apresentado-no-video-444046

Como a API pode ter mudanças, talvez a versão do código da aula tenha algum nome de atributo diferente do que os dados que a API está retornando. Então é sempre bom conferir os dois.