ホームページ >Java >&#&チュートリアル >GSON が「BEGIN_OBJECT を期待していましたが、BEGIN_ARRAY でした」をスローする理由とその修正方法

GSON が「BEGIN_OBJECT を期待していましたが、BEGIN_ARRAY でした」をスローする理由とその修正方法

DDD
DDDオリジナル
2024-12-18 02:07:12175ブラウズ

Why Does GSON Throw

GSON 例外:「BEGIN_OBJECT を予期しましたが、BEGIN_ARRAY でした」

エラー メッセージ:

com.google.gson.JsonSyntaxException : java.lang.IllegalStateException: BEGIN_OBJECT が予期されましたが、行 1、列 2 で BEGIN_ARRAY でした

問題の概要:

JSON 応答はオブジェクトの配列ですが、単一のものとして解析しようとしていますobject.

解決策:

この問題を解決するには、配列構造を適切に処理できるようにコードを調整する必要があります。 JSON 文字列を ChannelSearchEnum.class として解析する代わりに、ChannelSearchEnum オブジェクトの配列として解析する必要があります。

修正コード:

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

これは修正されましたコードは JSON 文字列を ChannelSearchEnum オブジェクトのコレクションとして正しく解析し、「BEGIN_OBJECT を期待していましたが、 BEGIN_ARRAY" 例外。

以上がGSON が「BEGIN_OBJECT を期待していましたが、BEGIN_ARRAY でした」をスローする理由とその修正方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。