2013-04-16 7 views
5
{"User":{"id":"42","name":"martin"}} 

लौटने NSString करने के लिए अपने NSData परिवर्तित इस JSON जो पूरी तरह से वैध लगता है देता है, लेकिन विधि:NSJSONSerialization शून्य

[NSJSONSerialization isValidJSONObject:data] 

कह रहा है यह एक मान्य JSON वस्तु नहीं है।

क्या कोई भी मेरी गलती को इंगित कर सकता है या ऐसा क्यों सोच रहा है कि यह क्यों हो रहा है?

उत्तर

9

मुझे लगता है कि उदाहरण के लिए आपकी स्ट्रिंग में एक गैर-प्रिंट करने योग्य वर्ण है, जिससे डेटा अमान्य हो जाता है।

घोषित एक NSError* error चर तो JSON बदलने की कोशिश करने के लिए [NSJSONSerialization JSONObjectWithData:data options:0 error:&error] विधि कॉल: स्पष्ट रूप से अपने डेटा मान्य नहीं होता है, तो यह nil वापस आ जाएगी, लेकिन कम से कम तुम क्या उसके बाद NSError* error चर में गलत क्या है का वर्णन होगा।

NSData* data = ... // your data 
NSError* error = nil; // Declare a variable to hold the error upon return 
id obj = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; // Try to convert your data 
NSLog(@"obj: %@ ; error: %@", error); // Log the decoded object, and the error if any 
+0

मैंने त्रुटि डाली और कहा कि यह शून्य है, किसी भी तरह से यह अचानक काम करता है ... अजीब ... किसी भी तरह से यह अब काम करता है! – Alex

+0

मुझे एक ही समस्या थी और मुझे मिलता है: '(चरित्र 43579 के आस-पास अनचाहे नियंत्रण चरित्र।) UserInfo = 0x9b78e30 {NSDebugDescription = चरित्र 43579 के आसपास अनचाहे नियंत्रण चरित्र}}। मैं इसे कैसे ठीक करूं? – marciokoko

+0

अपने JSON मूल डेटा को ठीक करें। मैं जेएसओएन शर्त लगाता हूं कि आप डीकोड करने का प्रयास कर रहे हैं, शुरुआत में वैध JSON डेटा नहीं है और त्रुटि 43579 ऑफसेट पर एक अमान्य चरित्र है, क्योंकि त्रुटि बताती है। अपने JSON को http://jsonlint.org/ में पेस्ट करें ताकि यह जांच सके कि यह अमान्य है या उदाहरण के लिए JSON खराब है। यदि यह वैध JSON नहीं है, तो आपको स्पष्ट रूप से इसे स्रोत _ पर ठीक करने की आवश्यकता है (यदि आप ऐसी फ़ाइल से 'NSData' पढ़ रहे हैं, तो' file.json' की सामग्री को ठीक करें, या अपने वेब सर्वर द्वारा उत्पन्न स्ट्रिंग को ठीक करें एक वेब सेवा जो इस JSON को आपके ऐप पर इस 'एनएसडीटा' आदि में वापस लाती है ...) _ – AliSoftware

संबंधित मुद्दे