[英]Convert swift3 list to json
我正在寻找一种转换Swift3列表的方法
var myList = [MyObject]();
到json。
我用了:
let jsonData = try JSONSerialization.data(withJSONObject: myList, options: JSONSerialization.WritingOptions()) as NSData
该应用程序崩溃了。
您可以序列化一个Array / List,问题是自定义MyObject
,您必须首先将其映射到Dictionary。
我将使用.map
方法:
var myList = [MyObject]() // myList contains MyObject's
let jsonArray = myList.map { obj in
return obj.serialize()
}
在MyObject
添加一个序列化函数,如下所示:
public func serialize() -> Dictionary<String, Any> {
var dict = Dictionary<String, Any>()
// now place all your public vars in the dictionary
dict["id"] = self.id
dict["name"] = self.name
dict["title"] = self.title
return dict
}
现在,如果要反序列化,只需创建另一个方法:
public func deserialize(source: Dictionary<String, Any>) {
// You might need some type conversion
self.id = source["id"]
self.name = source["name"]
self.title = source["title"]
}
然后再次调用map,现在从Dictionary
到MyObject
:
var jsonArray = [Dictionary<String, Any>]() // jsonArray contains dictionaries
let myList = jsonArray.map { dict in
let obj = MyObject()
obj.deserialize(source: dict)
return obj
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.