Настоящая причина того, почему ключи JSON должны быть в кавычках, зависит от семантики идентификаторов ECMAScript 3.
Зарезервированные слова не могут использоваться в качестве названий свойств em > в объектных литералах без кавычек, например:
({function: 0}) // SyntaxError
({if: 0}) // SyntaxError
({true: 0}) // SyntaxError
// etc...
Хотя, если вы используете кавычки, имена свойств действительны:
({"function": 0}) // Ok
({"if": 0}) // Ok
({"true": 0}) // Ok
Собственный Крокфорд объясняет это в этом выступлении, они хотели чтобы стандарт JSON оставался простым, и они не хотели бы налагать на него все эти семантические ограничения:
....
Именно тогда мы обнаружили проблему с именами без кавычек. Оказывается, в сценарии ECMA 3 используется политика зарезервированных слов для удаления. Зарезервированные слова нужно цитировать в ключевой позиции, что действительно неприятно. Когда я добрался до формулировки этого стандарта, я не хотел помещать все зарезервированные слова в стандарт, потому что это выглядело бы действительно глупо.
В то время я пытался убедить людей: да, вы можете писать приложения на JavaScript, это действительно будет работать, и это хороший язык. Тогда я не хотел одновременно сказать: и посмотрите на эту действительно глупую вещь, которую они сделали! Поэтому я решил, что вместо этого давайте просто процитируем ключи.
Таким образом, нам не нужно будет никому рассказывать о том, насколько это круто.
Вот почему до сих пор ключи цитируются в JSON.
...
Стандарт ECMAScript 5th Edition исправляет это, теперь в реализации ES5 даже зарезервированные слова могут использоваться без кавычек как в литералах объектов, так и в доступе к членам (obj.function
Ok в ES5).
Для протокола: в наши дни этот стандарт внедряется поставщиками программного обеспечения. Вы можете увидеть, какие браузеры включают эту функцию, в этой таблица совместимости (см. Зарезервированные слова как имена свойств)
person
Christian C. Salvadó
schedule
17.11.2010
JSON.parse()
(что еще вы бы использовали?), Я показал демонстрацию этого в ответе ниже. - person Nick Craver   schedule 17.11.2010