我想知道是否有可能在swift 3中对对象进行序列化和反序列化。
我有一个这样的对象:
class Credentials{
var username:String;
var password:String;
init(){
username = "";
password = "";
}
}
我想将这个类转换为json(反之亦然),通过HTTP post发送它。
我不想使用第三方库。
感谢您的回答。
答案 0 :(得分:3)
首先,没有必要使用类,结构就足够了。
带有可用初始化程序的简单解决方案,期望JSON字符串和变量jsonRepresentation
struct Credentials {
var username = ""
var password = ""
init(username: String, password:String) {
self.username = username
self.password = password
}
init?(json : String) {
guard let data = json.data(using: .utf8),
let jsonDict = try? JSONSerialization.jsonObject(with: data, options: []) as? [String:String],
let username = jsonDict?["username"],
let password = jsonDict?["password"] else { return nil }
self.username = username
self.password = password
}
var jsonRepresentation : String {
let jsonDict = ["username" : username, "password" : password]
if let data = try? JSONSerialization.data(withJSONObject: jsonDict, options: []),
let jsonString = String(data:data, encoding:.utf8) {
return jsonString
} else { return "" }
}
}