JSON でエンコードされた文字列を に渡し、json_decode()
その出力がオブジェクト型であることを期待していますが、代わりに文字列型を取得しています。どうすればオブジェクトを返すことができますか?
ドキュメントでは、次はオブジェクトを返します。
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
ただし、json_encode()
最初に文字列を呼び出してから を呼び出すjson_decode()
と、出力はオブジェクトではなく文字列になります。
$json = json_encode('{"a":1,"b":2,"c":3,"d":4,"e":5}');
var_dump(json_decode($json));
これは単なる単純化された例です。実際には、JSON でエンコードされた文字列を AJAX 経由で PHP にプッシュしています。ただし、このエンコードされた JSON 文字列を PHP で読み取ることができるオブジェクト (" $json->a
" など) に変換する際の問題を示しています。
オブジェクト型を返すにはどうすればよいですか?
返信ありがとうございます!この質問の実際のコンテキストは、API からの JSON 応答を使用することでした。しかし、この応答に対して json_decode を実行し、次のような値にアクセスしようとすると - $json=json_decode(json response from API); echo $json->a エラーが表示されます: クラス stdClass のオブジェクトを文字列に変換できませんでした