ホームページ >Java >&#&チュートリアル >GSON が「BEGIN_OBJECT を期待していましたが、BEGIN_ARRAY でした」をスローする理由とその修正方法
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 サイトの他の関連記事を参照してください。