jQuery.parseJSON
en JSON.parse
zijn twee functies die dezelfde taak uitvoeren. Als de jQuery-bibliotheek al is geladen, zou het gebruik van jQuery.parseJSON
dan beter zijn dan het gebruik van JSON.parse
, in termen van prestaties?
Zo ja, waarom? Zo nee, waarom niet?
Antwoord 1, autoriteit 100%
Hier is een uittreksel uit 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 );
},
Zoals u kunt zien, gebruikt jQuery de native JSON.parse
-methode als deze beschikbaar is, en anders probeert het de gegevens te evalueren met new Function
, die lijkt een beetje op eval
.
Dus ja, je moet zeker jQuery.parseJSON
gebruiken.
Antwoord 2, autoriteit 9%
Waar de browser een native implementatie van JSON.parse biedt, gebruikt jQuery deze om de string te ontleden.
het betekent dus dat jQuery een JSON-parser levert als er geen native implementatie in de browser bestaat. hier is een vergelijkingstabelvan browsers die JSON-functionaliteit hebben (en niet hebben)
Antwoord 3, autoriteit 6%
Als je jQuery versie 3 (uitgebracht in 2016) gebruikt, moet je JSON.parse()
omdat jQuery.parseJSON()
is beëindigd.
Vanaf jQuery 3.0 is $.parseJSON verouderd. Gebruik in plaats daarvan de native JSON.parse-methode om JSON-objecten te ontleden.
Antwoord 4, autoriteit 5%
JSON.parse() is standaard beschikbaar in sommige browsers, niet in andere, dus het is veiliger om een bibliotheek te gebruiken. De JQuery-implementatie werkt goed, zoals andere respondenten hebben opgemerkt. Er is ook Douglas Crockford’s JSON-bibliotheek, die, indien beschikbaar, de native implementatie gebruikt.
De JSON-bibliotheek heeft het voordeel dat deze een methode heeft om een JavaScript-object om te zetten in een JSON-string, die momenteel ontbreekt in jQuery..
Antwoord 5, autoriteit 3%
Ik weet niets over de prestaties, maar het is zeker veiliger om de jQuery-methode te gebruiken, omdat sommige browsers, zoals ie7 en lager, mogelijk geen native JSON-functionaliteit hebben.
Het draait allemaal om compatibiliteit, net zoals je elke methode van jQuery gebruikt in plaats van de native forEach
methode van de array voor iteratie.
Antwoord 6, autoriteit 2%
Over prestatiesgesproken, het meest bijgewerkteantwoord is JSON.parse
.
Het native JSON-object wordt tegenwoordig ondersteundin elke browser, dus kies voor JSON.parse
. U kunt de ondersteuningstabel hier bekijken: http://caniuse.com/#feat=json
Je kunt deze alias ook zoeken in de repository van JQuery op GitHub: https://github.com/jquery/jquery/search?utf8=%E2%9C%93&q=parseJSON
Ook jQuery.parseJSON
was verouderdin versie 3.0+, zoals vermeld in andere antwoorden hier.
Gebruik de jQuery-versie alleen als u een oude JQuery-versie hebt + als u ondersteuning wilt bieden voor zeer oude browsers (normaal gesproken niet aanbevolen).
Antwoord 7
jQuery gebruikt intern JSON.parse
om het JSON-bestand te ontleden. In de meeste gevallen maakt het dus geen verschil.
Maar sommige van de oudere browsers ondersteunen de functionaliteit JSON.parse
niet. In dat geval is het nuttig om jQuery.parseJSON
te gebruiken, aangezien jQuery JSON aankan met zijn eigen functie .
OPMERKING:
jQuery.parseJSON
is verouderd vanaf jQuery 3.0. Gebruik dus de nativeJSON.parse
-methode.