"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que o GSON lança "BEGIN_OBJECT esperado, mas era BEGIN_ARRAY" e como posso corrigir isso?

Por que o GSON lança "BEGIN_OBJECT esperado, mas era BEGIN_ARRAY" e como posso corrigir isso?

Publicado em 2025-01-21
Navegar:166

Why Does GSON Throw

Exceção GSON: "BEGIN_OBJECT esperado, mas era BEGIN_ARRAY"

Mensagem de erro:

com.google.gson.JsonSyntaxException : java.lang.IllegalStateException: BEGIN_OBJECT esperado, mas foi BEGIN_ARRAY na linha 1, coluna 2

Visão geral do problema:

Sua resposta JSON é uma matriz de objetos, mas você está tentando analisá-la como um único objeto.

Solução:

Para resolver esse problema, você precisa ajustar seu código para lidar adequadamente com a estrutura do array. Em vez de tentar analisar a string JSON como ChannelSearchEnum.class, você deve analisá-la como uma matriz de objetos ChannelSearchEnum.

Código corrigido:

Type collectionType = new TypeToken>(){}.getType();
Collection enums = gson.fromJson(jstring, collectionType);

Este código revisado analisará corretamente a string JSON como uma coleção de objetos ChannelSearchEnum, resolvendo a exceção "BEGIN_OBJECT esperado, mas foi BEGIN_ARRAY".

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3