2014-05-06 4 views
5

एसओ पर कई प्रश्न और उत्तर हैं जो पूछते हैं कि मैं किसी ऑब्जेक्ट को उद्देश्य सी में कैसे क्रमबद्ध करता हूं।क्या मुझे जेएसओएन को क्रमबद्ध करने के लिए एनएससीओडर का उपयोग करना चाहिए?

निम्नलिखित 3 तरीकों सब ऊपर दिए गए लिंक में वर्णित हैं।

1) जेएसओएन को ऑब्जेक्ट को क्रमबद्ध करने के लिए NSJSONSerialization का उपयोग करें। अच्छा लगता है लेकिन इसके लिए वस्तु को शीर्ष स्तर पर या तो सरणी या शब्दकोश होने की आवश्यकता होती है। सामान्य समाधान कस्टम toDictionary या serialise विधि घोषित करना है जो गुणों पर लूप करता है और प्रासंगिक कुंजी और मान सेट करता है।

2) NSCoder प्रोटोकॉल के अनुरूप, ऊपर दिए गए दृष्टिकोण की तरह थोड़ा, लेकिन यह कुछ भ्रम प्रतीत होता है कि यह JSON को क्रमबद्ध कर सकता है या सिर्फ NSData पर।

3) तृतीय पक्ष पुस्तकालय।

मुझे थोड़ा उलझन में आ रहा है कि किस दृष्टिकोण को लेना है। मैं JSON को क्रमबद्ध करना चाहता हूं, कुछ विरोधाभासी उत्तर हैं जो बताते हैं कि आप एनएससीओडर का उपयोग कुछ नहीं कह सकते हैं। मुझे पता है कि एक थर्ड पार्टी ऐप काम करेगा हालांकि मैं विकल्प 1 या 2 जैसे कुछ सरल कार्यान्वित करना चाहता हूं।

विचार?

+0

मैं उद्देश्य सी के लिए बैकबोन.जेएस का एक बंदरगाह लिख रहा हूं। आप देख सकते हैं कि मैंने JSON (डी) धारावाहिक को कैसे संभाला है: https : //github.com/geon/Backbone.m/blob/master/BackboneModel.m#L229 – geon

उत्तर

0

1 के साथ, आप मूल रूप से स्क्रैच से NSCoder का JSON- आधारित कार्यान्वयन लिख रहे होंगे। हालांकि, निश्चित रूप से करने योग्य।

2 के साथ, मुझे विश्वास है कि यह संभव हो सकता है, क्योंकि मुझे लगता है कि NSCoder का आउटपुट some variant of XML है (हालांकि बाइनरी ब्लॉब में संपीड़ित)। हालांकि, मुझे नहीं पता कि यह एक महान दृष्टिकोण है, क्योंकि प्रारूप स्वामित्व है और वास्तव में मानव-संपादन योग्य नहीं है। कुंजी और पत्ती नोड्स के संदर्भ में JSON बनाम NSCoder प्रारूप में क्या अनुमति है, इसके बीच एक विसंगति भी हो सकती है, जिससे आप एक गन्दा रूपांतरण कर सकते हैं।

मैं कुछ ऐसा करने की कोशिश कर रहा हूं, और मेरे शोध के आधार पर, मैं वास्तव में का सुझाव देता हूं। Mantle जैसे कुछ का उपयोग करना - एक स्थिर, पॉलिश ढांचा जो अक्सर अद्यतन प्राप्त करता है - आप यह निर्दिष्ट कर सकते हैं कि आपके मॉडल ऑब्जेक्ट्स को JSON से क्रमबद्ध और deserialized कैसे किया जाएगा। यह एक विकल्प के रूप में NSCoder प्रोटोकॉल का भी समर्थन करता है! (यह प्रभावी रूप से समाधान 1 है, लेकिन किसी तीसरे पक्ष द्वारा vetted और रखरखाव।)

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