GSON が「BEGIN_OBJECT を予期しましたが、BEGIN_ARRAY でした」エラーをスローします
オブジェクトの配列を含む JSON 文字列を解析してリストに変換しようとしましたオブジェクトの場合、GSON は「BEGIN_OBJECT を予期していましたが、 BEGIN_ARRAY」例外。問題は、JSON 構造とそれを解釈しようとするコードの間の期待値の不一致にあります。
エラーを理解するには、次の JSON 文字列を考慮してください。
[ { // Object properties }, { // Another object } ]
この JSON は、次の配列を表します。オブジェクト。ただし、コードは、ChannelSearchEnum 型の単一オブジェクトとして逆シリアル化しようとします。この期待の不一致によりエラーが発生します。
この問題を解決するには、オブジェクトの配列を期待するようにコードを修正します。
Gson gson = new Gson(); ChannelSearchEnum[] enums = gson.fromJson(yourJson, ChannelSearchEnum[].class);
あるいは、TypeToken クラスを使用して型を作成することもできます。オブジェクトのコレクションを表す:
Type collectionType = new TypeToken<Collection<ChannelSearchEnum>>(){}.getType(); Collection<ChannelSearchEnum> enums = gson.fromJson(yourJson, collectionType);
JSON 構造を正しく処理することで、「期待されるBEGIN_OBJECT が BEGIN_ARRAY エラーでしたが、データは正常に解析されて使用されました。
以上がGSON が「BEGIN_OBJECT を予期しましたが、BEGIN_ARRAY でした」をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。