ホームページ >バックエンド開発 >PHPチュートリアル >「json_encode」が JSON データにバックスラッシュを追加するのはなぜですか?

「json_encode」が JSON データにバックスラッシュを追加するのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-11 16:46:03668ブラウズ

Why Does `json_encode` Add Backslashes to My JSON Data?

Json_encode でバックスラッシュが追加されるのはなぜですか?

ファイル アップロード スクリプト内で json_encode を使用すると、結果の JSON データに予期しないものが含まれることが判明しました。バックスラッシュ。これにより、なぜ json_encode がこれらのエスケープを導入しているのかという疑問が生じます。

JSON_UNESCAPED_SLASHES オプション

その答えは、json_encode 内で使用できる特定のオプションにあります。デフォルトでは、json_encode は、生成された JSON が有効なままであることを保証するために、スラッシュ (バックスラッシュ) を含む特定の文字をエスケープします。ただし、提供されているような URL を扱う場合など、場合によっては、これらのエスケープが望ましくない場合があります。

これに対処するために、JSON_UNESCAPED_SLASHES オプションが PHP バージョン 5.4 で導入されました。このオプションを使用すると、json_encode にスラッシュのエスケープを回避するよう指示し、当面の問題を効果的に解決します。

コードの変更

解決策を実装するには、JSON_UNESCAPED_SLASHES 定数を次のように組み込むだけです。 json_encode 関数内の 2 番目のパラメーター。変更されたコードは次のようになります:

echo json_encode($result, JSON_UNESCAPED_SLASHES); // <-- Adds the JSON_UNESCAPED_SLASHES option

これにより、結果として得られる JSON に不要なバックスラッシュが含まれず、望ましい結果が得られます:

{
  "logo_url": "http://mysite.com/uploads/gallery/7f/3b/f65ab8165d_logo.jpeg",
  "img_id": "54",
  "feedback": {
    "message": "File uploaded",
    "success": true
  }
}

以上が「json_encode」が JSON データにバックスラッシュを追加するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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