ホームページ >バックエンド開発 >PHPチュートリアル >json_encode を使用した JSON 出力に予期しないバックスラッシュが表示されるのはなぜですか?

json_encode を使用した JSON 出力に予期しないバックスラッシュが表示されるのはなぜですか?

DDD
DDDオリジナル
2024-11-27 01:54:10905ブラウズ

Why Am I Getting Unexpected Backslashes in My JSON Output with json_encode?

json_encode を使用した JSON 出力に予期しないバックスラッシュ

ファイルのアップロード後に JSON データを返すために json_encode を使用しているときに、特定のユーザーが追加のエラーに遭遇しました。出力内の不要なバックスラッシュ。この問題を詳しく調べるために、問題を分析してみましょう:

有効な JSON を生成する最初のコード スニペット:

print_r($result);
echo json_encode($result);

しかし、data.toSource() を通じてさらに調べると、バックスラッシュが追加され、追加情報 (例: status:200) が追加された、無効な JSON が生成されていることが明らかになりました。

問題の原因

追加のバックスラッシュと無関係な情報は、json_encode 自体の外部のプロセスによって導入された可能性があります。 Plupload バインド関数が返されたデータを何らかの方法で操作している可能性があると仮定されています。

解決策

この問題を解決するには、「JSON_UNESCAPED_SLASHES」オプションを含めることをお勧めします。 json_encode を使用する場合。 PHP バージョン 5.4 以降で導入されたこのオプションは、バックスラッシュが不必要に追加されるのを防ぎます。修正されたコード:

json_encode($array, JSON_UNESCAPED_SLASHES);

以上がjson_encode を使用した JSON 出力に予期しないバックスラッシュが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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