Поскольку undefined
недопустимо JSON .JSON не имеет концепции JavaScript undefined
.У него есть null
, что неопределенно похоже, но обычно (к лучшему или к худшему) просто опускают свойства, значения которых будут undefined
.
Я удивляюсь, если у Додзё toJson
производит недопустимый JSON, как это.Вы можете рассмотреть возможность использования Крокфорда JSON.stringify
.Если Dojo toJson
действительно делает это, я бы сообщил об этом команде Dojo как об ошибке.
Обновление : очевидно, кто-то сделал отчетэто для них , и они закрыли его как недействительный по теории «мусор в мусоре».Не мой проект, но это просто , а не , как я буду обрабатывать свойства со значениями undefined
... Я бы их пропустил или выкинул исключение.
Обновление 2 : Как вы, возможно, знаете, спецификация ECMAScript 5-го издания определяет объект JSON
с parse
и stringify
, для которых браузеры добавляют поддержку.Определение спецификации JSON.stringify
гласит: «undefined
значения не отображаются» (раздел 15.12.3, примечание 2) - например, свойство должно быть опущено.Возможно, если вы укажете это команде Dojo, они пересмотрят свой ответ GIGO на сообщение об ошибке.Также обратите внимание на комментарий Феликса ниже: они опускают ссылки на функции, которые также не могут быть корректно представлены в JSON, но применяют другое правило к undefined
.
Обновление 3 : все еще не работаетв додзё 1.6.1.Вот живой тест v1.6.0, который является последним на CDN.Я также протестировал v1.6.1, и он все еще там сломан.(Не собираюсь публиковать тестовую страницу, содержащую ссылки на их раздел загрузки, это было бы грубым.)