JSON: why are forward slashes escaped?

JSON doesn’t require you to do that, it allows you to do that. It also allows you to use “\u0061” for “A”, but it’s not required, like Harold L points out:

The JSON spec says you CAN escape forward slash, but you don’t have to.

Harold L answered Oct 16 ’09 at 21:59

Allowing \/ helps when embedding JSON in a <script> tag, which doesn’t allow </ inside strings, like Seb points out:

This is because HTML does not allow a string inside a <script> tag to contain </, so in case that substring’s there, you should escape every forward slash.

Seb answered Oct 16 ’09 at 22:00 (#1580667)

Some of Microsoft’s ASP.NET Ajax/JSON API’s use this loophole to add extra information, e.g., a datetime will be sent as "\/Date(milliseconds)\/". (Yuck)

Leave a Comment