Как обнаружить поддержку JSON в JavaScript? - PullRequest
9 голосов
/ 14 марта 2012

Я пытался определить поддержку JSON с if(JSON.parse) {}, но она не работает.Есть ли способ обнаружить поддержку JSON?

Ответы [ 2 ]

22 голосов
/ 14 марта 2012

Взято из наиболее известной реализации json https://github.com/douglascrockford/JSON-js/blob/master/json2.js

var JSON;
if (JSON && typeof JSON.parse === 'function') {
    ....
}

(Я объединил две if: if (!JSON) { строки 163 и if (typeof JSON.parse !== 'function') { строки 406.

Хитрость в том, что var JSON получит значение объекта JSON браузера, undefined, если нет.

Обратите внимание, что в последней версии библиотекиони изменили код на что-то вроде:

if (typeof JSON === 'object' && typeof JSON.parse === 'function') {
    ....
}

(без предварительного объявления var JSON)

0 голосов
/ 14 марта 2012

Не может ли это быть точным ответом на вопрос, но, возможно, будет ли возможен альтернативный анализ пользовательского агента (навигатора) и проверка версий, которые, как вы уверены, поддерживают парсер?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...