1. ホーム
  2. javascript

[解決済み] jQuery.parseJSONとJSON.parseの比較

2023-06-25 12:45:15

質問

jQuery.parseJSON そして JSON.parse は、同じタスクを実行する2つの関数です。もしjQueryライブラリがすでにロードされている場合は jQuery.parseJSON を使う方が JSON.parse を使うよりも良いのでしょうか?

はい」の場合、その理由は?いいえ」の場合、なぜそうしないのですか?

どのように解決するのですか?

以下はその抜粋です。 を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 .