JSON:为什么正斜杠会逃脱?

这个“逃避”我的原因。

JSON转义正斜杠,所以哈希{a: "a/b/c"}被序列化为{"a":"a/b/c"}而不是{"a":"a/b/c"}

为什么?


JSON并不要求你这样做,它可以让你做到这一点。 它也允许你为“A”使用“ u0061”,但这不是必需的。 在将JSON嵌入到<script>标记中时,允许/帮助,该标记不允许</在字符串中出现,就像Seb指出的那样。

一些微软的ASP.NET Ajax / JSON API使用这个漏洞来添加额外的信息,例如,日期时间将作为"/Date(milliseconds)/" 。 (呸)


JSON规范说你可以转义斜线,但你不必。


我前一段时间提出了同样的问题,我不得不亲自回答。 以下是我想到的:

看来,我的第一个想法(它来自它的JavaScript根源)是正确的。

'/' === '/'在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/1303.html

上一篇: JSON: why are forward slashes escaped?

下一篇: Why is it a bad practice to return generated HTML instead of JSON? Or is it?