我对 iOS 编程还比较陌生。然而,我认为 Swift 会有一种自动方式将对象转换为 JSON,反之亦然。话虽这么说,我已经找到了几个可以做到这一点的库。
然而...
似乎无论您如何将数据发布到 Web 服务(甚至使用 AlamoFire 之类的东西),请求都必须是字典。所有这些论坛都展示了将返回的 JSON 字符串转换为对象是多么容易的示例。真的。但请求需要手动编码。也就是说,遍历所有对象属性并将它们映射为字典。
所以我的问题是:我错过了什么吗?我是否都搞错了,有一种超级简单的方法可以(a)在请求中发送 JSON(而不是字典)或(b)自动将对象转换为字典?
我再次看到处理 JSON 响应是多么容易。我只是在寻找一种自动方法,将我想要发布到 Web 服务的请求对象转换为像 AlamoFire(或其他)这样的库所需的格式。对于其他语言来说,这是相当微不足道的,所以我希望 Swift 有一种同样简单且自动化的方法。
我必须不同意@Darko。
In Swift 2,
use 面向协议的编程以及提供的简单反映Mirror class :
protocol JSONAble {}
extension JSONAble {
func toDict() -> [String:Any] {
var dict = [String:Any]()
let otherSelf = Mirror(reflecting: self)
for child in otherSelf.children {
if let key = child.label {
dict[key] = child.value
}
}
return dict
}
}
然后您可以将此协议与您的请求类一起使用并生成所需的字典:
class JsonRequest : JSONAble {
var param1 : String?
// ...
}
let request = JsonRequest()
// set params of the request
let dict = request.toDict()
// use your dict
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)