2010-11-24 10 views
18

可能性の重複:JSONでスラッシュをエスケープ可能な文字にするのはなぜですか?

"\/" 

はしかし、エスケープスラッシュは、有効です。スラッシュ(別名ソリダス、/)をエスケープすることができ
JSON: why are forward slashes escaped?

json.org状態、あまりにも:

"/" 

これの裏には何がありますか?それはJavascriptのルーツから来ていますか? (つまり、"</script>"はブラウザベースのJavaScriptの問題です(Douglas Crockford's commentを参照)。それ以外の理由がありますか?

+0

はい、そうです。もう一つ見つけてくれてありがとう。それを閉じるための投票。 – Boldewyn

+0

他の閲覧者も閲覧してください:1580647の複製としてクローズしますか? – Boldewyn

答えて

2

私の最初の考えは正しいと思われます。

'\/' === '/' JavaScriptで、JSON almost有効なJavaScriptです。 しかし、他の無視されたエスケープ文字(\zなど)がJSONでは使用できないのはなぜですか?

このキーはhttp://www.cs.tut.fi/~jkorpela/www/revsol.htmlの後にhttp://www.w3.org/TR/html4/appendix/notes.html#h-B.3.2が続きました。スラッシュエスケープの機能は、JSONをHTML(SGMLとして)とXMLに埋め込むことができます。

+0

JSONのバックスペースに\ bのようなものが使用されています。\ zはzを使用すると混乱することがあります。 – kyrias

6

私のブログにはa review of this issueが公開されました。私はあなたが正しいと思う、それが唯一の理由です。スラッシュはエスケープできる唯一の標準文字です。

通常JSONエンコーダは、同じ理由で、それは間違って行うと</script>で唯一のスラッシュをエスケープする必要がありながら、彼らは道に沿って見つけるの任意のスラッシュをエスケープ、およびJavaScriptのRegExp /<\/\w+/にマッチしたかもしれないすべてのもの。

EDIT:固定ブログリンク。

+0

ええ、面白いです。しかし、あなたも、仮定の根源を知ることはありませんか? – Boldewyn

+0

いいえ、私は、申し訳ありません。 – Ando

+0

"スラッシュはエスケープできる唯一の標準文字です。 <間違い。すべての文字をエスケープすることができます。 – kyrias

関連する問題