jQuery.parseJSON
とJSON.parse
は、同じタスクを実行する 2 つの関数です。jQuery ライブラリが既に読み込まれている場合、パフォーマンスの点で を使用jQuery.parseJSON
するよりも使用する方が良いでしょうJSON.parse
か?
はいの場合、なぜですか? いいえの場合、なぜですか?
jQuery.parseJSON
とJSON.parse
は、同じタスクを実行する 2 つの関数です。jQuery ライブラリが既に読み込まれている場合、パフォーマンスの点で を使用jQuery.parseJSON
するよりも使用する方が良いでしょうJSON.parse
か?
はいの場合、なぜですか? いいえの場合、なぜですか?
Here is an extract from 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 );
},
As you can see, jQuery will use the native JSON.parse
method if it is available, and otherwise it will try to evaluate the data with new Function
, which is kind of like eval
.
So yes, you should definitely use jQuery.parseJSON
.
ブラウザーが JSON.parse のネイティブ実装を提供する場合、jQuery はそれを使用して文字列を解析します。
したがって、ブラウザーにネイティブ実装が存在しない場合、jQuery は JSON パーサーを提供することを意味します。これは、JSON 機能を備えた (および備えていない) ブラウザーの比較表です。
jQuery バージョン 3 (2016 年にリリース) を使用している場合は、JSON.parse()
because jQuery.parseJSON()
has been deprecatedを使用する必要があります。
jQuery 3.0 以降、$.parseJSON は非推奨になりました。JSON オブジェクトを解析するには、代わりにネイティブの JSON.parse メソッドを使用します。
JSON.parse()は、一部のブラウザーではネイティブに使用可能であり、他のブラウザーでは使用できないため、ライブラリーを使用する方が安全です。他の回答者が指摘しているように、JQueryの実装はうまく機能します。Douglas CrockfordのJSONライブラリもあります。これは、可能な場合はネイティブ実装を使用します。
JSONライブラリには、JavaScriptオブジェクトをJSON文字列に変換するメソッドがあるという利点がありますが、現時点ではjQueryにはありません。
パフォーマンスについてはわかりませんが、ie7 以下のような一部のブラウザーには JSON 機能がネイティブにない可能性があるため、jQuery メソッドを使用する方が確実に安全です。反復のため
に配列のネイティブ メソッドの代わりに jQuery の each メソッドを使用するのと同じように、互換性がすべてです。forEach
jQuery は内部的JSON.parse
に JSON ファイルを解析するために使用します。そのため、ほとんどの場合、違いはありません。
JSON.parse
ただし、一部の古いブラウザーは機能をサポートしていません。その場合jQuery.parseJSON
、jQuery は独自の関数を使用して JSON を処理できるため、使用すると便利です。
ノート:
jQuery.parseJSON
はjQuery 3.0から廃止されましたので、ネイティブJSON.parse
メソッドをご利用ください。