jQuery.parseJSON vs JSON.разбор
jQuery.parseJSON и JSON.parse две функции, которые выполняют ту же задачу. Если библиотека jQuery уже загружена, будет использовать jQuery.parseJSON лучше, чем с помощью JSON.parse в плане производительности?
если да, то почему? Если нет, то почему?
7 ответов:
вот выдержка С jQuery 1.9.1:
parseJSON: function( data ) { // Attempt to parse using the native JSON parser first if ( window.JSON && window.JSON.parse ) { return window.JSON.parse( data ); } if ( data === null ) { return data; } if ( typeof data === "string" ) { // Make sure leading/trailing whitespace is removed (IE can't handle it) data = jQuery.trim( data ); if ( data ) { // Make sure the incoming data is actual JSON // Logic borrowed from http://json.org/json2.js if ( rvalidchars.test( data.replace( rvalidescape, "@" ) .replace( rvalidtokens, "]" ) .replace( rvalidbraces, "")) ) { return ( new Function( "return " + data ) )(); } } } jQuery.error( "Invalid JSON: " + data ); },как вы можете видеть, jQuery будет использовать родной
JSON.parseметод, если он доступен, и в противном случае он попытается оценить данные с помощьюnew Function, что-то вродеeval.так что да, вы обязательно должны использовать
jQuery.parseJSON.
где браузер предоставляет собственную реализацию JSON.parse, jQuery использует его для разбора строки.
таким образом, это означает, что jQuery предоставляет парсер JSON, если в браузере не существует собственной реализации. вот сравнительная таблица браузеров, которые имеют (и не имеют) функциональность JSON
JSON.parse () изначально доступен в некоторых браузерах, а не в других, поэтому безопаснее использовать библиотеку. Реализация JQuery работает хорошо, как отметили другие респонденты. Там же библиотека JSON Дугласа Крокфорда, который использует собственную реализацию, если они доступны.
библиотека JSON имеет то преимущество, что она имеет метод для преобразования объекта JavaScript в строку JSON, которая отсутствует в jQuery на данный момент..
Если вы используете jQuery 3.0+, то вы должны использовать
JSON.parse, потому чтоjQuery.parseJSONбыла прекращена.по состоянию на jQuery 3.0,$.parseJSON является устаревшим. Для анализа объектов JSON используйте собственный JSON.вместо этого проанализируйте метод.
Я не знаю о производительности, но определенно безопаснее использовать метод jQuery, потому что некоторые браузеры, такие как ie7 и ниже, могут не иметь никаких функций JSON изначально.
Это все о совместимости, так же, как вы используете каждый метод jQuery вместо собственного массиваforEachметод перебора.
про производительность на самые новые ответ
JSON.parse.собственный объект JSON-это поддерживает на обозреватель в настоящее время, так что выбирайте
JSON.parse. Вы можете увидеть таблицу поддержки здесь:http://caniuse.com/#feat=jsonвы также можете искать этот псевдоним в репозитории JQuery на GitHub: https://github.com/jquery/jquery/search?utf8=%E2%9C%93&q=parseJSON
и
jQuery.parseJsonбыл устаревший на версии 3.0+, Как упоминалось в других ответах здесь.вы должны использовать только версию jQuery, если вы старая версия JQuery + если вы хотите обеспечить поддержку очень старых браузеров (обычно,не рекомендуется).
библиотека jQuery внутренне использует
JSON.parseдля разбора JSON file.So в большинстве случаев это не имеет никакого значения.но некоторые из старых браузеров не поддерживают
JSON.parsefunctionality.In в этом случае с помощьюjQuery.parseJSONполезно, поскольку jQuery может обрабатывать JSON, используя свою собственную функцию.Примечание:
jQuery.parseJSONявляется устаревшим в jQuery 3.0.Поэтому, пожалуйста, используйте уроженцаJSON.parseметод.
Comments