为什么斜杠是JSON中的一个易变字符?
可能重复:
JSON:为什么正斜杠会逃脱?
json.org表示,正斜线(又名固体, /
)可以逃脱:
"/"
但是,非斜杠斜线也是有效的:
"/"
这背后的理由是什么? 它来自Javascript的根源吗? (即, "</script>"
是基于浏览器的Javascript中的一个问题,请参阅Douglas Crockford的评论)还是有其他原因?
我刚刚在我的博客上发布了关于此问题的评论。 我认为你是对的,这是唯一的原因。 另外请注意,斜线是唯一允许转义的标准字符。
通常情况下,JSON编码器会做错误的,并且逃避沿途发现的任何斜线,而只有</script>
的斜线应该被转义,也许所有匹配的JavaScript RegExp /</w+/
都是相同的原因。
编辑:修复了博客链接。
看来,我的第一个想法是正确的。
'/' === '/'
在JavaScript中,JSON几乎是有效的JavaScript。 但是,为什么JSON中不允许其他的转义(如z
)?
关键是阅读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中。
链接地址: http://www.djcxy.com/p/8397.html