ホームページ > Java > &#&チュートリアル > JSON データの解析時に「JSON 構文エラー: BEGIN_ARRAY が予期されましたが、BEGIN_OBJECT でした」というエラーが発生するのはなぜですか?

JSON データの解析時に「JSON 構文エラー: BEGIN_ARRAY が予期されましたが、BEGIN_OBJECT でした」というエラーが発生するのはなぜですか?

Linda Hamilton
リリース: 2024-10-27 11:50:30
オリジナル
728 人が閲覧しました

Why am I getting a

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート