ホームページ >Java >&#&チュートリアル >JSON 配列を解析するときに GSON が「BEGIN_OBJECT を期待しましたが、BEGIN_ARRAY でした」というメッセージをスローするのはなぜですか?

JSON 配列を解析するときに GSON が「BEGIN_OBJECT を期待しましたが、BEGIN_ARRAY でした」というメッセージをスローするのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-01 01:25:10771ブラウズ

Why Does GSON Throw

BEGIN_OBJECT を予期しましたが、GSON では BEGIN_ARRAY でした

GSON を使用してオブジェクトの配列を含む JSON 文字列をオブジェクトのリストに解析しようとしたとき、「BEGIN_OBJECT を期待していましたが、BEGIN_ARRAY でした」の問題が生じます。これは、GSON が単一オブジェクトの解析を想定しているにもかかわらず、代わりにオブジェクトの配列に遭遇するために発生します。

これを解決するには、期待されるデータ構造がオブジェクトの配列であることを指定するのが正しい方法です。これは、コードを次のように変更することで実現できます:

ChannelSearchEnum[] enums = gson.fromJson(yourJson, ChannelSearchEnum[].class);

または、柔軟性を高めるために、次のコードを使用できます:

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

以上がJSON 配列を解析するときに GSON が「BEGIN_OBJECT を期待しましたが、BEGIN_ARRAY でした」というメッセージをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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