ホームページ > バックエンド開発 > PHPチュートリアル > JSON をデコードすると「stdClass 型のオブジェクトを配列として使用できません」というエラーが発生するのはなぜですか?

JSON をデコードすると「stdClass 型のオブジェクトを配列として使用できません」というエラーが発生するのはなぜですか?

Barbara Streisand
リリース: 2024-12-17 11:42:25
オリジナル
524 人が閲覧しました

Why am I Getting the

エラーの理解:「stdClass 型のオブジェクトを配列として使用できません」

JSON 文字列をデコードしようとすると、エラー「致命的エラー: stdClass 型のオブジェクトを配列として使用できません。」このエラーは、json_decode() 関数の出力をオブジェクトではなく配列として処理しようとすると発生します。

解決策: True の 2 番目の引数を指定した json_decode() 関数の使用

json_decode() 関数は、出力を配列として返すか、または 物体。デフォルトでは、json_decode() はオブジェクトを返します。

JSON 文字列を配列にデコードするには、2 番目の引数を true に設定する必要があります。修正されたコードは次のとおりです。

$result = json_decode($jsondata, true);
ログイン後にコピー

配列キーへのアクセス

JSON 文字列が配列にデコードされると、配列キーを使用してその要素にアクセスできます。たとえば、配列に「Result」というキーが含まれている場合、次のようにアクセスできます。

print_r($result['Result']);
ログイン後にコピー

代替メソッド

json_decode の使用に加えて、 true 2 番目の引数を指定した () 関数を使用する場合、JSON オブジェクトをarray:

  • array_values(json_decode($jsondata, true)): の使用 このアプローチでは、プロパティ名の代わりに整数キーを含む配列が返されます。
  • オブジェクトとしてオブジェクトにアクセスする: によって返されるオブジェクトのプロパティに直接アクセスできます。 json_decode() は次のようになります:
print_r($obj->Result);
ログイン後にコピー

以上がJSON をデコードすると「stdClass 型のオブジェクトを配列として使用できません」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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