ホームページ >バックエンド開発 >PHPチュートリアル >Web サービス呼び出し後に「json_decode」が NULL を返すのはなぜですか?
Web サービス呼び出し後に JSON デコードで Null が返される
このスレッドでは、Web サービス呼び出しからの JSON 応答をデコードするときに発生する特殊な動作について調査します。この問題は、Web サービスが JSON データを返しているにもかかわらず、json_decode 関数が NULL を返すために発生します。
これを解決するには、根本原因を特定することが重要です。このシナリオでは、問題の鍵はマジック クオート、つまり非推奨の PHP 設定にあります。マジック クオートは、特定の文字を自動的にエスケープし、$_GET、$_POST、$_COOKIE などのグローバル変数の意味を変更します。
マジック クォートが有効になると、から受け取った JSON データが破損するため、デコード プロセスが妨げられます。ウェブサービス。これにより、json_decode が失敗し、NULL が返されます。
解決策:
この問題に対処するには、特に $_POST 変数のマジック クオートを無効にすることが不可欠です。これは、次のコードを通じて実現できます:
if (get_magic_quotes_gpc()) { $param = stripslashes($_POST['param']); } else { $param = $_POST['param']; } $param = json_decode($param, true);
マジック クオートを無効にすると、JSON データはそのまま残り、json_decode を使用して正常にデコードできます。
以上がWeb サービス呼び出し後に「json_decode」が NULL を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。