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?