ホームページ >バックエンド開発 >PHPチュートリアル >Web サービスからの一見有効な JSON 応答にもかかわらず、JSON デコードが NULL を返すのはなぜですか?

Web サービスからの一見有効な JSON 応答にもかかわらず、JSON デコードが NULL を返すのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-04 05:08:14729ブラウズ

Why is my JSON Decode Returning NULL Despite a Seemingly Valid JSON Response from my Web Service?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。