Почему двойные кавычки и обратная косая черта не разрешены в строках в стандарте JSON?

Если я запустил это в консоли JavaScript в Chrome или Firebug, все работает нормально.

JSON.parse('"\u0027"') // Escaped single-quote

Но если я запускаю одну из этих двух строк в консоли Javascript, возникает ошибка.

JSON.parse('"\u0022"') // Escaped double-quote
JSON.parse('"\u005C"') // Escaped backslash

Раздел 2.5 RFC 4627 , кажется, подразумевает, что \ и « разрешены символы, если они ' повторно сбежали. Однако два браузера, в которых я пробовал это, похоже, не позволяют этого. Что-то я здесь делаю не так, или они действительно не разрешены в строках? Я также пробовал использовать \ " и \\ вместо \ u0022 и \ u005C соответственно.

Я чувствую как будто я просто делаю что-то очень неправильное, потому что мне трудно поверить, что JSON не позволяет использовать эти символы в строках, тем более что в спецификации не упоминается ничего, что я мог бы найти, говоря, что они не разрешены.

6
задан Dan Herbert 2 January 2011 в 02:42
поделиться