ホームページ >バックエンド開発 >PHPチュートリアル >JSON エンコードされたデータにバックスラッシュが含まれるのはなぜですか?

JSON エンコードされたデータにバックスラッシュが含まれるのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-11 07:19:03951ブラウズ

Why are there backslashes in my JSON encoded data?

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

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