Универсальный json сериализатор / десериализатор в jQuery?
Вопрос
Дубликат Сериализация в JSON в jQuery р>
Кажется, в JQuery встроен сериализатор / десериализатор JSON, поскольку он может реализовывать такие вещи, как .getJSON. Можно ли использовать встроенный в JQuery JSON-процессор сам по себе JSON-процессор общего назначения (т. Е. Сделать вызов jQuery.something () для сериализации / десериализации моих собственных данных), устраняя необходимость в отдельной библиотеке JSON?
Обновление. В ответах на вопрос, упомянутый выше, говорится, что в jQuery нет кода сериализации JSON. Как насчет десериализации JSON? Как реализован .getJSON и почему возможности десериализации не предоставляются для общего использования?
Update2: я уже использую json2 с json.org, я пытаюсь избавиться от него, так как все, что я делаю, - это простая десериализация. Похоже, JQuery просто делает Eval? У меня сложилось впечатление, что это не очень хорошо для безопасности :
Функция eval очень быстрая. Тем не менее, он может скомпилировать и выполнить любая программа на JavaScript, так что можно быть вопросы безопасности
Решение
На данный момент jQuery просто использует eval (). JQuery 1.4 будет включать поддержку десериализации JSON в браузерах, поддерживающих ее. Вы можете воспользоваться этим сейчас, если хотите, с помощью использование обратного вызова dataFilter для jQuery, чтобы по возможности избегать eval () (поместите его в $ .ajaxSetup, чтобы автоматически воздействовать на все вызовы $ .ajax (), $ .post (), $ .getJSON ()). р>
Другие советы
Похоже, вам нужна реализация сериализации / десериализации, доступная по адресу http: //www.json. org / js.html , который предоставляет JSON.parse () и JSON.stringify (), что упрощает (де) сериализацию и проверку данных.
Если вы просто хотите перевести текст JSON в объект, используйте функцию eval ().
Я только начал использовать jQuery и считаю, что проще всего просто вставить библиотеку JSON2.js из JSON.org, а затем расширить jQuery для ее использования.
Я считаю, что для десериализации входящих данных json jQuery просто eval (). Я не знаю ни о каких сериализациях.