JSON.parse अनपेक्षित वर्ण त्रुटि


112

मुझे यह त्रुटि मिली:

JSON.parse: अप्रत्याशित चरित्र

जब मैं फायरबग में इस कथन को चलाता हूं:

JSON.parse({"balance":0,"count":0,"time":1323973673061,"firstname":"howard","userId":5383,"localid":1,"freeExpiration":0,"status":false});

ऐसा क्यों है? JSON स्ट्रिंग मुझे सही लगती है और मैंने JSHint का उपयोग करके इसका परीक्षण भी किया। उपरोक्त मामले में पारित वस्तु एक सर्वर प्रतिक्रिया है जिसमें सामग्री प्रकार सेट हैapplication/json

जवाबों:


224

आप एक स्ट्रिंग पार्स नहीं कर रहे हैं, आप पहले से ही पार्स की गई वस्तु को देख रहे हैं :)

var obj1 = JSON.parse('{"creditBalance":0,...,"starStatus":false}');
//                    ^                                          ^
//                    if you want to parse, the input should be a string 

var obj2 = {"creditBalance":0,...,"starStatus":false};
// or just use it directly.

मैं पहले वाक्य के लिए उत्थान करना चाहता हूं, लेकिन आप फिर से पार्स क्यों करेंगे?
मैथलेटिक्स

1
@ मार्सेलकॉर्पेल, मैथलेटिक्स: राइट। अपडेट किया गया।
kennytm

@ मैथलेटिक्स सभी खातों से JSON.parse कुछ सुरक्षा जांच करता है। NT
BF

5
यह प्रफुल्लित करने वाला है। इसे प्यार करना। <३
डार एग्रीशियस

1
मुझे data.results पर डेटा अपरिभाषित हो रहा है (डेटा एक JSON ऑब्जेक्ट है)। स्टैक मुझे डेटा = JSON.parse (डेटा) द्वारा एक जेएस वस्तु बनाने के लिए कह रहा है। लेकिन मुझे JSON.parse अप्रत्याशित चरित्र त्रुटि मिल रही है।
कसपारटेर

35

आप यह सुनिश्चित कर सकते हैं कि प्रश्न में ऑब्जेक्ट को केवल उपयोग करके पार्स फ़ंक्शन को पास करने से पहले इसे कड़ा कर दिया गया है JSON.stringify()

नीचे अपनी लाइन अपडेट की गई,

JSON.parse(JSON.stringify({"balance":0,"count":0,"time":1323973673061,"firstname":"howard","userId":5383,"localid":1,"freeExpiration":0,"status":false}));

या यदि आपके पास JSON कुछ चर में संग्रहीत है:

JSON.parse(JSON.stringify(yourJSONobject));

3
JSON.stringify बॉस है।
केनमेस्टर

-1

ओपी के लिए सच नहीं है, लेकिन यह त्रुटि स्ट्रिंग के लिए 'डबल ( ") के बजाय एकल उद्धरण चिह्नों ( ) का उपयोग करके हो सकती है ।

JSON कल्पना स्ट्रिंग्स के लिए दोहरे उद्धरण चिह्न की आवश्यकता है।

उदाहरण के लिए:

JSON.parse(`{"myparam": 'myString'}`)

त्रुटि देता है, जबकि

JSON.parse(`{"myparam": "myString"}`)

नहीं करता। चारों ओर उद्धरण चिह्नों पर ध्यान दें myString

संबंधित: https://stackoverflow.com/a/14355724/1461850

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.