jQuery.parseJSON vs JSON.разбор



jQuery.parseJSON и JSON.parse две функции, которые выполняют ту же задачу. Если библиотека jQuery уже загружена, будет использовать jQuery.parseJSON лучше, чем с помощью JSON.parse в плане производительности?



если да, то почему? Если нет, то почему?

362   7  

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.

согласно jQuery

где браузер предоставляет собственную реализацию 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.parse functionality.In в этом случае с помощью jQuery.parseJSON полезно, поскольку jQuery может обрабатывать JSON, используя свою собственную функцию.

Примечание:

jQuery.parseJSON является устаревшим в jQuery 3.0.Поэтому, пожалуйста, используйте уроженца JSON.parse метод.

Comments

    Ничего не найдено.