16

मैं हर जगह JSON.Stringify और JSON.parse का उपयोग कर रहा हूं और यह फ़ायरफ़ॉक्स के साथ ठीक काम करता है। यह आईई 9 के साथ और काम नहीं कर रहा है और न ही यह आईई 8 में काम करता है। मैं क्या कर सकता हूँ?JSON.stringify और JSON.parse IE9 में काम नहीं कर रहा है?

+3

क्या आप कुछ कोड पेस्ट कर सकते हैं? – yoda

+0

यहां और अधिक देखें आईई 8 के साथ इसे कैसे बनाएं http://stackoverflow.com/questions/3326893/json-stringify-supported-by-ie-8/10940623#10940623 – ggc

+0

यहां और देखें http://stackoverflow.com/questions/3326893/json-stringify-support-by-ie-8/10940623 # 10940623 – ggc

उत्तर

10

कारण है कि आप के बजाय वस्तु होने सिर्फ डगलस Crockford द्वारा स्क्रिप्ट फ़ाइल शामिल ब्राउज़र पर निर्भर करना चाहते हैं .. आप minifed फ़ाइल यहाँ पा सकते हैं: http://www.json.org/js.html

आयात होने के बाद आप न विधि abt चिंता करने की ज़रूरत एक ब्राउज़र में मौजूद है।

+0

मुझे बेहतर विचार दिखता है लेकिन मुझे कौन सी फाइल जोड़नी चाहिए। बहुत सारी फाइलें हैं https://github.com/douglascrockford/JSON-js –

+0

json2.js का उपयोग करें। यह नवीनतम है .. यदि आप – Baz1nga

+0

कर सकते हैं तो न्यूनतम 1 प्राप्त करें? –

34

JSON.stringify निचले मामले s से शुरू होता है। stringify और parseavailable in IE8+, हैं, लेकिन केवल standards mode में हैं।

यदि आप वर्तमान में क्विर्क मोड का उपयोग कर रहे हैं तो अपने दस्तावेज़ को <!DOCTYPE html> के साथ तैयार करें। साथ ही, आपके द्वारा कॉल की जाने वाली जावास्क्रिप्ट विधियों के पूंजीकरण को देखें - सभी अंतर्निर्मित एक निम्न-मामले वाले चरित्र से शुरू होते हैं।

+2

बस उत्तर को पूरा करने के लिए: http://caniuse.com/#search=json –

+6

इसके अतिरिक्त, यदि आप स्थानीय रूप से विकास कर रहे हैं तो देखें एक स्थानीयहोस्ट पता। कुछ हफ्ते पहले आईई 9 में एक विंडोज अपडेट ने कुछ स्थानीयहोस्ट पते के लिए संगतता मोड का उपयोग करके स्वचालित रूप से प्रारंभ करना शुरू किया, जिसके परिणामस्वरूप JSON.parse/स्ट्रिंगिफ़ अचानक उपलब्ध नहीं हो सकता है, भले ही आपके मार्कअप को क्विर्क मोड ट्रिगर नहीं किया जाना चाहिए। –

+0

मेरे पास पहले से ही कुछ है

0

एक विकल्प के लिए, किसी परिदृश्य में जहां आपको किसी भी कारण से सख्त मोड में चलाने की आवश्यकता हो सकती है (मेरे पास एक और लाइब्रेरी है जिसमें "सख्त उपयोग" शामिल है), आप यहां देख सकते हैं: https://github.com/douglascrockford/JSON-js। मैं यह पहली जांच करने के लिए करता है, तो JSON अपरिभाषित है, और केवल समारोह JSON.parse उत्पन्न करता है, तो यह है संशोधित:

if (typeof JSON === "undefined") { 
    var JSON = { 
     parse: <insert value of json_parse from library here> 
    }; 
} 

मेरे मुद्दा IE9 में काम नहीं कर (सख्त मोड एक भाग लेने वाले पुस्तकालय द्वारा किया जा रहा आवेदन कोड था, मैं मानना)। इससे मेरे लिए समस्या हल हो गई।

0

केवल मुद्दा यह है कि यूटीएफ -8 हेडर भेजना JSON को अमान्य कर देगा (IE इसे पसंद नहीं करता/नहीं)। चूंकि इस मुद्दे का वर्णन किया गया है, जो अभी भी IE9 के लिए लागू हो सकता है ... कुछ साल पहले एक बार how to लिखा था। एक ब्राउज़र में जेएसओएन समर्थन जोड़ना जो देशी जेएसओएन को पार्स कर सकता है शायद इष्टतम समाधान नहीं है, क्योंकि यह बेकार ओवरहेड का उत्पादन करता है - केवल इसलिए कि अपेक्षित प्रारूप में जेएसओएन वितरित करने में असफल रहा है।