2014-06-25 7 views
5

मैं सर्वर से प्राप्त एक JSON ऑब्जेक्ट के लिए एक NSDictionary सेट करने का प्रयास, मैं कर रहा हूँ कि इस पंक्ति में:NSJSONSerialization रिटर्न "<null>" स्ट्रिंग

_peopleArray = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 

यह ठीक काम करता है और ठीक से शब्दकोश बनाता है । हालांकि, मुझे एक समस्या है, JSON ऑब्जेक्ट में null मान जो "<null>" शब्दकोश में स्ट्रिंग मान के रूप में संग्रहीत हैं। क्या इसे ठीक करने या इसके आसपास काम करने का कोई तरीका है? मैं पूरी चीज के माध्यम से ट्रैवर्सिंग से बचाना चाहता हूं और उन्हें @"" पर सेट करना चाहता हूं।

किसी भी मदद के लिए धन्यवाद!

~ Carpetfizz

उत्तर

1

कुछ भी नहीं मुझे लगता है कि नहीं है, हालांकि यह आसानी से एपीआई निर्माताओं से सुधारा जा सकता है, यदि संभव हो तो नहीं, तो आप हमेशा एक सरल मैक्रो डाल सकते हैं, मैं इस तरह के बात से बचने के लिए,

नीचे मैक्रो का पालन का उपयोग
#define Is_Empty(value) (value == (id)[NSNull null] || value == nil || ([value isKindOfClass:[NSString class]] && ([value isEqualToString:@""] || [value isEqualToString:@"<null>"]))) ? YES : NO 

#define IfNULL(original, replacement) IsNULL(original) ? replacement : original 

#define IsNULL(original) original == (id)[NSNull null] 

#define SafeString(value) IfNULL(value, @"") 

प्रयोग

self.label.text=SafeString([dic objectForKey:@"name"]); 
7

आप गलत हैं। JSON में शून्य मान < शून्य> स्ट्रिंग मानों के रूप में संग्रहीत हैं। उन्हें NSNull ऑब्जेक्ट्स के रूप में संग्रहीत किया जाता है, जो NSLog < शून्य के रूप में लॉग इन करता है।

आप कभी भी भरोसा नहीं कर सकते कि आपको कौन सा डेटा दिया गया था। अगर आपको लगता है कि आपको एनएसएसटींग मिल गई है और सर्वर आपको नंबर भेजता है, तो आपका कोड क्रैश होने की संभावना है।

NSString* myJSONString = ...; 
if ([myJSONString isKindOfClass:[NSString class]]) { 
    it is a string 
} else { 
    it is not a string 
} 
+0

(अतिरिक्त जानकारी बहुत थोड़ी जोड़ने) न केवल वे एक स्ट्रिंग के रूप NSLog है, लेकिन यह भी '[NSString stringWithFormat: @"% @ ", nullObj];' होगा अपने अनुप्रयोग, में उत्पादन '' जो यही कारण है कि अधिकांश लोगों को इस डेटा टाइप को डीबग करके गुमराह किया जाता है। –

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