web-dev-qa-db-ja.com

SwiftyJSON:オブジェクトをJSONに変換する

SwiftyJSONを使用すると、オブジェクトをJSONからSwiftに変換できることを知っています。

SwiftyJSONでは戻ることができますか?つまり、関係を持つNSManagedObjectsを取得し、それをJSONに変換しますか?

例をお願いします。

9
user1107173

あなたはそれをすることはできません、それはSwiftyJSONのために作られているものではありません。 SwiftyJSONは、objective-cと比較してJSONの解析を改善するために、Swiftの機能を使用しているだけであり、JSONへのシリアル化の値はありません。

目的のために、NSManagedObjectオブジェクトから辞書/配列を作成する必要があります。次に、次のようなJSONシリアライザーでAlamofireだけを使用します。

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

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

JSONディクショナリへのシリアル化– NSManagedObjectの2つのサブクラスがある場合– EventActivityここで、EventActivity、私はこのようになります:

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
        ]
    }
}
5
Pavel Smejkal