Универсальный json сериализатор / десериализатор в jQuery?

StackOverflow https://stackoverflow.com/questions/812479

  •  03-07-2019
  •  | 
  •  

Вопрос

Дубликат Сериализация в 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 (). Я не знаю ни о каких сериализациях.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top