2010-03-26 15 views
6

में अपरिभाषित मैं JQuery कोड की निम्न पंक्ति का उपयोग कर रहा:JSON IE7

$.get('/ajax/buy', {'categoryname':chosenSelected}, function(data) { 
    data = JSON.parse(data); 
... 

हालांकि, जब यह IE7 पर चल रहा है मैं इस त्रुटि संदेश मिलता है: JSON undefined:

आईई 7 (और सभी प्रमुख ब्राउज़रों) को संगतता के साथ मैं पार्सर का उपयोग कैसे कर सकता हूं?

उत्तर

7

आपको JSON मैन्युअल रूप से पार्स करने की आवश्यकता नहीं है।

$.getJSON('/ajax/buy', { 'categoryname' : chosenSelected }, function(data) { 

    // data will be already a parsed JSON object 
}); 

parse विधि आप कॉल करने के लिए कोशिश कर रहे हैं json2 पुस्तकालय में उपलब्ध है: आप getJSON समारोह इस्तेमाल कर सकते हैं।

+0

धन्यवाद! मुझे एक समान $ .postJSON फ़ंक्शन नहीं मिल रहा है। इसके लिए कोई विशेष कारण? – Joel

+0

और यदि वास्तव में कोई फ़ंक्शन नहीं है, तो ऐसा लगता है जैसे लुकास विचार अच्छा होगा: $। पोस्ट ('/ AJAX/buy', {'categoryname': चुना गया चयन}, फ़ंक्शन (डेटा) { डेटा = jQuery.parseJSON (डेटा); – Joel

+0

नहीं, कृपया पृथ्वी पर कुछ भी मुझे विश्वास दिलाएगा कि jQuery में अंतर्निहित कार्यक्षमता का उपयोग करने के बजाय JSON मैन्युअल रूप से पार्स करना बेहतर है, मेरा मतलब है कि यह आपको अधिक कोड लिखता है और आपके पास जितना अधिक कोड है एक ही चीज़ को हासिल करने के लिए आपको इसे गलत प्राप्त करने का अधिक मौका मिलता है। –

11

आप jQuery में उपलब्ध parseJSON का उपयोग कर सकते हैं।

+0

मैं टिप्पणी करता हूं कि हालांकि अन्य उत्तरों सही हैं कि आप जेएसओएन या अन्य AJAX फ़ंक्शंस प्राप्त कर सकते हैं, यह कभी-कभी जेएसओएन के लिए आईई 7-अनुकूल विकल्प प्राप्त करने में सक्षम होने के लिए उपयोगी होता है, इसलिए इस फ़ंक्शन को इंगित करने के लिए धन्यवाद। –

+0

jQuery स्रोत से: ** parseJSON: JSON.parse, ** इसलिए मैं jQuery.parseJSON पर भरोसा नहीं करता। रिकॉर्ड के लिए – Sam

+1

, @ सैम की टिप्पणी के बारे में। यह केवल jQuery 2.0 के लिए सच है, जिसने पुराने ब्राउज़र के लिए समर्थन छोड़ दिया है। 1.9.एक्स में, पर्सजेसन को फॉलबैक के साथ लागू किया गया है। – gargc

1

आपको एक JSON पार्सर जोड़ने की आवश्यकता है। पुराने ब्राउज़र में शामिल नहीं है।

1 - भंडार पर जाएँ: https://github.com/douglascrockford/JSON-js/

2 - डाउनलोड करें और अपनी साइट या ऐप्लिकेशन में json2.js शामिल हैं।

यह सब कुछ है।

+0

जैसा ऊपर बताया गया है, मेरा मानना ​​है कि जब आप जेएसओएन को जावास्क्रिप्ट एन्कोड करना चाहते हैं तो यह केवल सख्ती से जरूरी है। – Phluks