2012-01-13 17 views
42

से एनएसजेएसओएसएरियलाइजेशन यदि मेरे पास एनएसएसटींग है और मैं NSJSONSerialization का उपयोग करना चाहता हूं तो यह संभव है? मैं यह कैसे करु?एनएसएसटींग

+1

यदि प्रदर्शन आपकी प्राथमिकता है, तो JSONKit एक बेहतर विकल्प है। – Danra

+1

NSJSONSerialization के उपयोग से संबंधित http://www.raywenderlich.com/5492/working-with-json-in-ios-5 पर एक अच्छा ट्यूटोरियल है। सुविधा के लिए – dean

उत्तर

88

सबसे पहले आप ऐसा करके NSData करने के लिए अपने NSString कन्वर्ट करने के लिए की आवश्यकता होगी निम्नलिखित

NSData *data = [stringData dataUsingEncoding:NSUTF8StringEncoding]; 

तो बस यह JSON

को
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 
+3

, आप इस कोड को NSJSONSerialization श्रेणी में डाल सकते हैं। – jianpx

+0

सावधानीपूर्वक 'NSJSONSerialization JSONObjectWithData' का उपयोग करें, हालांकि, इसमें एक NSError * पैरामीटर है, यह त्रुटि होने पर अपवाद फेंक सकता है! इसे '@try {} @catch (...)' ब्लॉक के साथ संलग्न करने की अनुशंसा की जाती है। – LaborEtArs

1

आप कह कर NSData करने के लिए अपने स्ट्रिंग परिवर्तित कर सकते हैं:

NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; 

फिर आप NSJSONSerialization के साथ उपयोग कर सकते हैं। ध्यान दें कि NSJSONSerialization केवल आईओएस 5 है, इसलिए आप टचजेसन या जेएसओएनकिट जैसी लाइब्रेरी का उपयोग करके बेहतर हो सकते हैं, जिनमें से दोनों आपको स्ट्रिंग के साथ सीधे काम करने देते हैं, जिससे आप एनएसडीटा में परिवर्तित होने का कदम बचा सकते हैं।

12

आपको अपने NSString से NSData में कनवर्ट करने की आवश्यकता है, उस समय आप +[NSJSONSerialization JSONObjectWithData:options:error:] विधि का उपयोग कर सकते हैं।

NSString * jsonString = YOUR_STRING; 
NSData * data = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; 
NSError * error = nil; 
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; 
if (!json) { 
    // handle error 
} 
0

मैं एक ब्लॉग लिखा था कन्वर्ट करने के लिए JSONObjectWithData विधि का उपयोग पोस्ट जो दर्शाता है कि देशी आईओएस JSON कक्षा को एक सामान्य प्रोटोकॉल में मूल रूप से उपयोग करने वाले कार्यान्वयन के साथ कैसे लपेटें आईओएस जेएसओएन कक्षा।

यह दृष्टिकोण मूल कार्यक्षमता का उपयोग करना बहुत आसान बनाता है और आपके द्वारा लिखे जाने वाले कोड की मात्रा को कम करता है। इसके अलावा, अगर मूल मूल अपर्याप्त साबित होता है, तो यह जेएसओएनकिट के साथ देशी कार्यान्वयन को स्विच करना बहुत आसान बनाता है।

http://danielsaidi.com/blog/2012/07/04/json-in-ios

ब्लॉग पोस्ट सभी कोड की जरूरत होती है। बस कॉपी/पेस्ट करें :)

उम्मीद है कि यह मदद करता है!

+0

धन्यवाद! ठीक कर दिया! –

+0

कृपया ध्यान दें कि पोस्ट 5 साल पुराना है :) –