PHP での「非オブジェクトのプロパティを取得しようとしています」エラーのトラブルシューティング
JSON エンドポイントからデータを取得しようとすると、次のような問題が発生する可能性があります。 「非オブジェクトのプロパティを取得しようとしています」エラーが発生します。これは、オブジェクトではない変数のプロパティにアクセスしようとすると発生します。
提供されたコードでは、JSON 応答から player_name 変数を取得しようとしています。ただし、受信した応答は、オブジェクトを直接含むのではなく、単一のオブジェクトを含む配列です。これは、提供した var_dump 出力で確認できます。次のことが示されています。
array(1) { [0]=> object(stdClass)#52 {...} }
このエラーを解決するには、まずオブジェクトである配列要素にアクセスし、次にその属性にアクセスする必要があります。修正されたコードは次のとおりです。
$js = file_get_contents('http://api.convoytrucking.net/api.php?api_key=public&show=player&player_name=Mick_Gibson'); $pjs = json_decode($js); echo $pjs[0]->player_name; // Correctly access the object attribute
この修正されたコードは、「非オブジェクトのプロパティを取得しようとしています」エラーを発生させることなく、player_name 変数を正常に取得します。 JSON 応答の構造を注意深くチェックして、プロパティに正しくアクセスしていることを確認してください。
以上がPHP で JSON を操作すると「非オブジェクトのプロパティを取得しようとしています」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。