JSON 構文エラー: BEGIN_ARRAY が予期されましたが、BEGIN_OBJECT でした
JSON データの解析中に JSON パーサーでエラーが発生しました。期待される構造と実際の構造。
問題:
エラー メッセージ「BEGIN_ARRAY を期待しましたが、行 1 列 2 で BEGIN_OBJECT でした」は、パーサーが配列構造を予期していたことを意味します ( JSON データ内に BEGIN_ARRAY) がありましたが、代わりにオブジェクト構造 (BEGIN_OBJECT) が見つかりました。この不一致により、パーサーが失敗し、例外が発生する可能性があります。
サーバー URL とリクエスト:
提供されたコード スニペットは、URL への HTTP POST リクエストを実行し、その反応。 URL は、リモート サーバーから JSON データを取得するように構成されています。
Post クラス:
Post クラスは、予想されるデータ配列内の各オブジェクトの構造を定義します。ただし、エラー メッセージが示すように、サーバーはオブジェクトの配列ではなく、単一のオブジェクトを返します。
解決策:
コードは、次の配列を期待しています。オブジェクトをポストしますが、受信するオブジェクトは 1 つだけです。この問題を解決するには、応答を配列ではなく単一の Post オブジェクトとして解釈するようにコードを変更します。
<code class="java">Post post = gson.fromJson(reader, Post.class);</code>
<code class="java">List<Post> postsList = Arrays.asList(gson.fromJson(reader, Post[].class));</code>
を上記の行に置き換えると、コードは正しくなります。 JSON 応答を単一の Post オブジェクトとして解釈し、「BEGIN_ARRAY が期待されましたが、BEGIN_OBJECT でした」エラーを解決します。
以上がJSON データの解析時に「JSON 構文エラー: BEGIN_ARRAY が予期されましたが、BEGIN_OBJECT でした」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。