ホームページ >バックエンド開発 >PHPチュートリアル >JSON エンコードされたデータにバックスラッシュが含まれるのはなぜですか?
JSON エンコーディングでバックスラッシュがエスケープされる
json_encode を使用して連想配列を JSON に変換すると、エンコードされたデータに次のような問題が発生するという問題が発生することがあります。不要なバックスラッシュ。この問題は、JSON エンコード プロセスとその後の解析の間の潜在的な不一致が原因で発生します。
バックスラッシュの根本原因
PHP の標準 JSON エンコードでは、バックスラッシュを含む特殊文字がエスケープされます。 、データの整合性を確保するため。ただし、エンコードされたデータが .parseJSON などの外部 JavaScript 関数によってさらに処理される場合、意図しない二重エスケープが発生する可能性があります。
解決策: JSON_UNESCAPED_SLASHES オプション
解決するにはこの問題では、JSON_UNESCAPED_SLASHES オプションを 2 番目のパラメータとして明示的に指定できます。 json_エンコード。このオプションは、エンコード中にバックスラッシュをエスケープしないように PHP に指示するため、二重エスケープの問題が解消されます。
$result = [ 'logo_url' => 'http://mysite.com/uploads/gallery/7f/3b/f65ab8165d_logo.jpeg', 'img_id' => 54, 'feedback' => [ 'message' => 'File uploaded', 'success' => 1 ] ]; echo json_encode($result, JSON_UNESCAPED_SLASHES);
このコードは、追加のバックスラッシュなしで有効な JSON を出力します:
{"logo_url":"http://mysite.com/uploads/gallery/7f/3b/f65ab8165d_logo.jpeg","img_id":"54","feedback":{"message":"File uploaded","success":true}}
以上がJSON エンコードされたデータにバックスラッシュが含まれるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。