jQuery.parseJSONऔर JSON.parseदो कार्य हैं जो समान कार्य करते हैं। यदि jQuery लाइब्रेरी पहले से लोड है, तो प्रदर्शन के मामले में, jQuery.parseJSONउपयोग करने से बेहतर होगा JSON.parse?
यदि हाँ, तो क्यों? यदि नहीं, तो क्यों नहीं?
jQuery.parseJSONऔर JSON.parseदो कार्य हैं जो समान कार्य करते हैं। यदि 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 );
},
जैसा कि आप देख सकते हैं, JSON.parseअगर यह उपलब्ध है, तो jQuery मूल विधि का उपयोग करेगा , और अन्यथा यह उस डेटा का मूल्यांकन करने की कोशिश करेगा new Function, जो इस तरह का है eval।
तो हां, आपको जरूर इस्तेमाल करना चाहिए jQuery.parseJSON।
JSON.parse: caniuse.com/#search=json
जहाँ ब्राउज़र JSON.parse का मूल कार्यान्वयन प्रदान करता है, jQuery स्ट्रिंग को पार्स करने के लिए इसका उपयोग करता है।
इस प्रकार इसका मतलब है कि यदि ब्राउज़र पर कोई मूल कार्यान्वयन मौजूद नहीं है, तो jQuery एक JSON पार्सर प्रदान करता है। यहाँ JSON की कार्यक्षमता वाले ब्राउज़रों का तुलनात्मक चार्ट है (और नहीं है)
JSON.parse () मूल रूप से कुछ ब्राउज़रों पर उपलब्ध है, दूसरों पर नहीं, इसलिए लाइब्रेरी का उपयोग करना सुरक्षित है। JQuery कार्यान्वयन अच्छी तरह से काम करता है, जैसा कि अन्य उत्तरदाताओं ने नोट किया है। वहाँ भी है डगलस Crockford के JSON पुस्तकालय , यदि उपलब्ध देशी कार्यान्वयन का उपयोग करता है।
JSON लाइब्रेरी का यह फायदा है कि इसमें जावास्क्रिप्ट ऑब्जेक्ट को JSON स्ट्रिंग में बदलने का एक तरीका है, जो इस समय jQuery से गायब है ..
यदि आप jQuery संस्करण 3 (2016 में जारी) का उपयोग कर रहे हैं, तो आपको उपयोग करना चाहिए JSON.parse()क्योंकि jQuery.parseJSON() पदावनत कर दिया गया है ।
JQuery 3.0 के रूप में, $ .parseJSON पदावनत है। JSON ऑब्जेक्ट्स को पार्स करने के लिए, बजाय देशी JSON.parse विधि का उपयोग करें।
मुझे प्रदर्शन के बारे में पता नहीं है, लेकिन यह निश्चित रूप से jQuery पद्धति का उपयोग करने के लिए सुरक्षित है क्योंकि कुछ ब्राउज़र जैसे कि ie7 और निम्न में कोई JSON कार्यात्मकता नहीं हो सकती है।
यह सब अनुकूलता के बारे में है, ठीक उसी तरह जैसे कि आप jQuery के प्रत्येक विधि का उपयोग करें, जबकि forEachपुनरावृति के लिए सरणी की मूल विधि।
प्रदर्शन के बारे में बात करते हुए , सबसे अद्यतन उत्तर है JSON.parse।
देशी JSON ऑब्जेक्ट आजकल हर ब्राउज़र में समर्थित है, इसलिए इसका चयन करें । आप यहाँ समर्थन तालिका देख सकते हैं: http://caniuse.com/#feat=jsonJSON.parse
आप गीता पर JQuery के भंडार में इस उपनाम की खोज कर सकते हैं: https://github.com/jquery/jquery/search?utf8=%E2%9C%93&q=parsexSON
भी, jQuery.parseJsonथा यहाँ अन्य उत्तरों द्वारा उल्लिखित संस्करण 3.0+ पर पदावनत गया ।
यदि आप एक पुराने JQuery संस्करण + हैं, तो आपको केवल jQuery के संस्करण का उपयोग करना चाहिए यदि आप बहुत पुराने ब्राउज़रों के लिए समर्थन प्रदान करना चाहते हैं (सामान्य रूप से अनुशंसित नहीं )।
jQuery आंतरिक रूप से उपयोग करता है JSON.parse फ़ाइल को पार्स करने के लिए है। इसलिए यह ज्यादातर मामलों में कोई अंतर नहीं करता है।
लेकिन कुछ पुराने ब्राउज़र JSON.parseकार्यक्षमता का समर्थन नहीं करते हैंjQuery.parseJSON करना फायदेमंद है क्योंकि jQuery अपने कार्य का उपयोग करके JSON को संभाल सकता है।
ध्यान दें:
jQuery.parseJSONjQuery 3.0 से हटा दिया गया हैJSON.parse। मूल विधि का उपयोग करें ।