2015-11-28 13 views
8

में कनवर्ट करना मुझे स्विफ्टजॉन के साथ पता है आप ऑब्जेक्ट्स को JSON से Swift में परिवर्तित कर सकते हैं।SwiftyJSON: ऑब्जेक्ट्स को JSON

क्या स्विफ्टीजसन आपको वापस जाने की अनुमति देता है? यानी NSManagedObject एस संबंधों के साथ लेते हैं और उन्हें JSON में परिवर्तित करते हैं?

उदाहरण कृपया।

+1

स्विफ्टजसन सरल जेसन सीरियलाइज़र/deserializer है। आपको यह सुनिश्चित करना होगा कि आपके पास सही डेटा है। संबंधों के लिए, यह आपके काम को क्रमबद्ध करने के लिए तैयार करना है (यानी इसे एक शब्दकोश या कुछ प्रकार बनाते हैं)। आप जो पूछ रहे हैं वह कोर डेटा और स्विफ्टजेसन के बीच कड़े एकीकरण है, जो नहीं हैं। –

+0

@ user1107173 JSON से प्रबंधित प्रबंधित ऑब्जेक्ट में आप कैसे प्रबंधित करते हैं? यह पूर्ववत है ... – JAHelia

+1

@JAHelia मुझे नहीं लगता कि आप कर सकते हैं। आपने इसे JSON से रूपांतरित कर लिया है और मैपिंग मैन्युअल रूप से किया है। – user1107173

उत्तर

5

आप ऐसा नहीं कर सकते हैं, यही वह नहीं है जो स्विफ्टजसन के लिए बनाया गया है। SwiftyJSON उद्देश्य-सी की तुलना में जेएसओएन के बेहतर पार्सिंग के लिए स्विफ्ट की विशेषताओं का उपयोग कर रहा है, यह जेएसओएन को क्रमबद्ध करने के लिए कोई मूल्य नहीं लाएगा।

अपने उद्देश्य के लिए, आपको अपने NSManagedObject ऑब्जेक्ट से शब्दकोश/सरणी बनाना होगा। तो फिर इस तरह JSON serializer के साथ सिर्फ Alamofire का उपयोग करें:

let parameters = event.toJSON() // create Dictionary from NSManagedObject 

Alamofire.request(.POST, "https://httpbin.org/post", parameters: parameters, encoding: .JSON) 

JSON शब्दकोश में क्रमबद्धता - अगर आप दोनों में से NSManagedObject उपवर्गों है - Activity जहां EventActivity को एक-से-कई संबंध नहीं Event और, मैं की तरह जाना होगा यह:

extension Event { 
    func toJSON() -> Dictionary<String, AnyObject> { 
     return [ 
      "id": self.id, 
      "name": self.name, 
      "startDate": self.startDate.GMTFormatString, 
      "endDate": self.endDate.GMTFormatString, 
      "activities": self.activities.map({ $0.toJSON() }) 
     ] 
    } 
} 

extension Activity { 
    func toJSON() -> Dictionary<String, AnyObject> { 
     return [ 
      "id": self.id, 
      "name": self.name 
     ] 
    } 
} 
+0

धन्यवाद। संबंधों के लिए यह कैसे काम करेगा। अर्थात। अगर मेरे पास "घटनाओं" नामक एक इकाई है जिसका "गतिविधि" इकाई के साथ बहुत से संबंध हैं। घटनाओं में गतिविधियों का एक सेट होगा। – user1107173

+1

मैं संभवतः शब्दकोश में लौटने वाली दोनों कक्षाओं के लिए एक क्रमबद्ध विधि के साथ विस्तार लागू करूँगा। अद्यतन पोस्ट –

+0

देखें, इसके अलावा, मुझे सभी विशेषताओं को खोलने के लिए मजबूर होना पड़ रहा है। वापसी ["आईडी": self.id!]। क्या यह एक दुर्घटना का कारण बनने जा रहा है यदि मूल्यों में से एक शून्य है? – user1107173

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