jQuery.parseJSON
und JSON.parse
sind zwei Funktionen, die dieselbe Aufgabe ausführen. Wenn die jQuery-Bibliothek bereits geladen ist, ist die Verwendung in Bezug auf die Leistung jQuery.parseJSON
besser als die Verwendung JSON.parse
?
Wenn ja, warum? Wenn nein, warum nicht?
javascript
jquery
Fragenüberlauf
quelle
quelle
Antworten:
Hier ist ein Auszug aus 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 ); },
Wie Sie sehen können, verwendet jQuery die native
JSON.parse
Methode, wenn sie verfügbar ist, und versucht andernfalls, die Daten mit auszuwertennew Function
, was ähnlich isteval
.Also ja, du solltest es definitiv benutzen
jQuery.parseJSON
.quelle
JSON.parse
: caniuse.com/#search=jsonLaut jQuery
Dies bedeutet, dass jQuery einen JSON-Parser bereitstellt, wenn im Browser keine native Implementierung vorhanden ist. Hier ist eine Vergleichstabelle von Browsern mit (und ohne) JSON-Funktionalität
quelle
JSON.parse () ist in einigen Browsern nativ verfügbar, in anderen nicht. Daher ist es sicherer, eine Bibliothek zu verwenden. Die JQuery-Implementierung funktioniert gut, wie andere Befragte festgestellt haben. Es gibt auch die JSON-Bibliothek von Douglas Crockford , die die native Implementierung verwendet, sofern verfügbar.
Die JSON-Bibliothek hat den Vorteil, dass sie über eine Methode verfügt, mit der ein JavaScript-Objekt in eine JSON-Zeichenfolge umgewandelt werden kann, die derzeit in jQuery fehlt.
quelle
Wenn Sie jQuery Version 3 (veröffentlicht im Jahr 2016) verwenden, sollten Sie verwenden,
JSON.parse()
dajQuery.parseJSON()
dies veraltet ist .quelle
Ich weiß nichts über die Leistung, aber es ist definitiv sicherer, die jQuery-Methode zu verwenden, da einige Browser wie ie7 und niedriger möglicherweise keine nativen JSON-Funktionen haben.
Es geht um Kompatibilität, genau wie Sie jede Methode von jQuery anstelle der nativen
forEach
Methode des Arrays für die Iteration verwenden.quelle
Apropos Leistung : Die aktuellste Antwort lautet
JSON.parse
.Das native JSON - Objekt wird unterstützt in jedem Browser heutzutage, so entscheidet sich für
JSON.parse
. Die Support-Tabelle finden Sie hier: http://caniuse.com/#feat=jsonSie können diesen Alias auch im JQuery-Repository auf GitHub suchen: https://github.com/jquery/jquery/search?utf8=%E2%9C%93&q=parseJSON
Auch
jQuery.parseJson
wurde auf Version 3.0+ veraltet, wie in anderen Antworten hier erwähnt.Sie sollten die Version von jQuery nur verwenden, wenn Sie eine alte JQuery-Version + sind, wenn Sie Unterstützung für sehr alte Browser bereitstellen möchten (normalerweise nicht empfohlen ).
quelle
jQuery wird intern
JSON.parse
zum Parsen der JSON-Datei verwendet. In den meisten Fällen macht dies keinen Unterschied.Einige der älteren Browser unterstützen jedoch keine
JSON.parse
Funktionen. In diesem Fall ist die Verwendung vonjQuery.parseJSON
Vorteil, da jQuery JSON mit seiner eigenen Funktion verarbeiten kann.HINWEIS:
quelle