Skip to content
Advertisement

JSON: why are forward slashes escaped?

The reason for this “escapes” me.

JSON escapes the forward slash, so a hash {a: "a/b/c"} is serialized as {"a":"a/b/c"} instead of {"a":"a/b/c"}.

Why?

Advertisement

Answer

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)

User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement