可能重复:
JSON:为什么正斜杠转义?
json.org/
指出,可以转义正斜杠(又名solidus, ):
"\/"
但是,未转义的斜杠也是有效的:
"/"
这背后的原因是什么?它来自Javascript根源吗?(即,"</script>"
基于浏览器的 Javascript 中存在问题,请参阅Douglas Crockford 的评论)还是有其他原因?
可能重复:
JSON:为什么正斜杠转义?
json.org/
指出,可以转义正斜杠(又名solidus, ):
"\/"
但是,未转义的斜杠也是有效的:
"/"
这背后的原因是什么?它来自Javascript根源吗?(即,"</script>"
基于浏览器的 Javascript 中存在问题,请参阅Douglas Crockford 的评论)还是有其他原因?
我刚刚在我的博客上发表了对这个问题的评论。我认为你是对的,这是唯一的原因。另请注意,斜杠是唯一允许转义的标准字符。
通常 JSON 编码器会做错并转义他们一路上找到的任何斜线,而只有斜线</script>
应该被转义,也许是 JavaScript RegExp 匹配的所有斜线/<\/\w+/
,出于同样的原因。
编辑:再次修复博客链接
看来,我的第一个想法是正确的。
'\/' === '/'
在 JavaScript 中,JSON几乎 是有效的 JavaScript。\z
但是,为什么JSON 中不允许其他被忽略的转义符(如)?
关键是阅读http://www.cs.tut.fi/~jkorpela/www/revsol.html,然后是http://www.w3.org/TR/html4/appendix/notes.html#hB .3.2 . 斜线转义的特性允许将 JSON 嵌入到 HTML(作为 SGML)和 XML 中。