「BEGIN_ARRAY を予期していましたが、BEGIN_OBJECT でした」: JSON 解析エラーが発生するのはなぜですか?

DDD
リリース: 2024-10-27 04:40:29
オリジナル
912 人が閲覧しました

「BEGIN_ARRAY を期待していましたが、BEGIN_OBJECT でした」: JSON 解析エラーの解明

JSON データ操作を扱うときに、「BEGIN_ARRAY を期待していましたが、BEGIN_OBJECT でした」のようなエラーが発生しましたBEGIN_OBJECT でした」というメッセージはイライラするかもしれません。原因を理解して解決策を見つけるために、具体的なエラー シナリオを詳しく見てみましょう。

JSON 応答をオブジェクトの配列に解析しようとしたときにエラーが発生しますが、実際の応答はオブジェクトです。次のコード スニペットは、この問題を示しています:

<code class="java">Gson gson = new GsonBuilder().setDateFormat("M/d/yy hh:mm a").create();
List<Post> postsList = Arrays.asList(gson.fromJson(reader, Post[].class));</code>
ログイン後にコピー

ここで、postsList は Post オブジェクトのコレクションを保持することが期待されていますが、受信した JSON 応答は単なる単一の Post オブジェクトです:

<code class="json">{ 
  "dstOffset" : 3600, 
  "rawOffset" : 36000, 
  "status" : "OK", 
  "timeZoneId" : "Australia/Hobart", 
  "timeZoneName" : "Australian Eastern Daylight Time" 
}</code>
ログイン後にコピー

この不一致を解決するには、単一のオブジェクト構造を考慮してコードを変更します。

<code class="java">Post post = gson.fromJson(reader, Post.class);</code>
ログイン後にコピー

JSON を単一の Post オブジェクトに直接変換することで、データ構造を実際の JSON 応答形式に合わせて調整し、エラー。

以上が「BEGIN_ARRAY を予期していましたが、BEGIN_OBJECT でした」: JSON 解析エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!