Решения здесь:
None
в качестве значения по умолчанию (или nonce object
) и включите его, чтобы создать свои значения во время выполнения; или lambda
в качестве параметра по умолчанию и вызовите его в блоке try, чтобы получить значение по умолчанию (это то, что требуется для лямбда-абстракции). Второй вариант хорош, потому что пользователи функции могут проходить в вызываемом, который может уже существовать (например, type
)
Некоторые современные браузеры поддерживают разбор JSON в собственный объект:
var var1 = '{"cols": [{"i" ....... 66}]}';
var result = JSON.parse(var1);
Для браузеров, которые его не поддерживают, вы можете скачать json2.js из json.org для безопасного анализа объекта JSON. Сценарий проверяет наличие встроенной поддержки JSON, и если он не существует, укажите вместо этого глобальный объект JSON. Если более быстрый, родной объект доступен, он просто выйдет из сценария, оставив его неповрежденным. Тем не менее, вы должны предоставить действительный JSON или он выкинет ошибку & mdash; вы можете проверить достоверность своего JSON с помощью http://jslint.com или http://jsonlint.com .
строка в вашем вопросе не является допустимой строкой json. Из json.org website :
JSON построен на двух структурах:
blockquote>* A collection of name/value pairs. In various languages, this is realized as an object, record, struct, dictionary, hash table, keyed list, or associative array. * An ordered list of values. In most languages, this is realized as an array, vector, list, or sequence.
В принципе, строка json всегда будет начните с {или [.
Затем, когда @Andy E и @Cryo сказали, что вы можете проанализировать строку с помощью json2.js или некоторых других библиотек.
IMHO вам следует избегать eval, потому что это будет любая javascript-программа, поэтому вы можете столкнуться с проблемами безопасности.
Строка, которую вы возвращаете, недействительна JSON. Имена в объектах должны быть кавычками, и вся строка должна быть помещена в { … }
для формирования объекта. JSON также не может содержать что-то вроде new Date()
. JSON - это всего лишь небольшое подмножество JavaScript, которое имеет только строки, числа, объекты, массивы, true
, false
и null
.
См. Грамматику JSON для Дополнительная информация.
Вы можете использовать эту библиотеку из JSON.org, чтобы перевести вашу строку в объект JSON.
var var1_obj = JSON.parse(var1);
Или вы можете использовать jquery-json .
var var1_obj = $.toJSON(var1);
Вы можете использовать eval (jsonString), если вы доверяете данным в строке, в противном случае вам нужно будет проанализировать их правильно - проверьте json.org на некоторые примеры кода.