JSON:为什么正斜杠会转义?

2022-08-29 23:20:11

这个原因“逃避”了我。

JSON 对正斜杠进行转义,因此哈希值被序列化为 而不是 。{a: "a/b/c"}{"a":"a\/b\/c"}{"a":"a/b/c"}

为什么?


答案 1

JSON不需要你这样做,它允许你这样做。它还允许您使用“\u0061”表示“A”,但这不是必需的,如Harold L指出的那样:

JSON规范说你可以转义正斜杠,但你不必这样做。

Harold L 回答 Oct 16 '09 at 21:59

在标记中嵌入 JSON 时,允许帮助,这不允许在字符串内部,如 Seb 指出:\/<script></

这是因为 HTML 不允许标记内的字符串包含 ,因此,如果存在该子字符串,则应转义每个正斜杠。<script></

Seb 回答 Oct 16 '09 在 22:00 (#1580667)

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


答案 2

JSON规范说你可以转义正斜杠,但你不必这样做。