ホームページ >バックエンド開発 >PHPチュートリアル >Web サービス呼び出し後に json_decode が NULL を返すのはなぜですか?
Web サービス呼び出し後の JSON デコードの問題
JSON 解析に関するこの状況では、OP で json_decode が不可解にも呼び出し後に NULL を返すという特有の問題が発生します。 Web サービスを呼び出します。 Web サービスは、一見適切な構文に従っているように見える JSON データを送信します:
{"action":"set","user":"123123123123","status":"OK"}
しかし、json_decode($foo, true) を使用して PHP アプリケーションでこの JSON ペイロードをデコードしようとすると、不可解なことに NULL が返されます。
可能性解決策
この複雑な問題に取り組むために、OP は潜在的に重要な要素である PHP マジック クオートを見落としています。マジック クオートがサーバーで有効になっている場合、潜在的に危険な文字がエスケープされるため、受信データに大混乱を引き起こす可能性があります。この例では、Web サービスがエスケープされていない JSON を送信しているようで、マジック クオートとの衝突が発生しています。
この問題を回避するには、PHP スクリプトの先頭に次の行を追加してマジック クォートを無効にします。
if (get_magic_quotes_gpc()) { $param = stripslashes($_POST['param']); } else { $param = $_POST['param']; } $param = json_decode($param, true);
これにより、Web サービスから受信した JSON データがマジック クオートの影響を受けずに保たれ、デコードが解決されます。問題があります。
以上がWeb サービス呼び出し後に json_decode が NULL を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。