ホームページ >バックエンド開発 >PHPチュートリアル >Web サービスからの一見有効な JSON 応答にもかかわらず、JSON デコードが NULL を返すのはなぜですか?
Web サービスからの Null 応答で JSON デコードが失敗する
Web サービス アプリケーションで JSON データを処理するために json_encode と json_decode を使用すると、特有の問題が発生します。 Web サービスは、次の形式で JSON を返します:
var_dump($foo): string(62) "{"action":"set","user":"123123123123","status":"OK"}"
次のコードを使用してクライアント アプリケーションで JSON をデコードしようとすると、
$data = json_decode($foo, true)
結果は驚くほど null:
var_dump($data): NULL
この問題の背後にある潜在的な原因の 1 つは、サーバー上の PHP マジック クオート設定にあります。 5.4 より前の PHP バージョンでは、JSON 入力を含むフォーム送信で特定の文字がマジック クオートによって自動的にエスケープされていました。この問題を解決するには、次のコードを使用してマジック クオートを無効にします:
if(get_magic_quotes_gpc()){ $param = stripslashes($_POST['param']); }else{ $param = $_POST['param']; } $param = json_decode($param,true);
これにより問題が解決され、json_decode が予期した JSON オブジェクトを期待どおりに返すことができるようになります。
以上がWeb サービスからの一見有効な JSON 応答にもかかわらず、JSON デコードが NULL を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。