iOS Swift:对象映射器条件映射
问题描述:
我是新的swift,使用对象映射器进行映射,我如何映射如果消息键是json或字符串中的数组,它总是返回字符串。 的Json反应变量iOS Swift:对象映射器条件映射
{ “错误”:{ “代码”:404, “消息”: “消息”}}
{ “错误”:{ “代码”:406 , “消息”:[ “消息” ]}}
我类
class Response : NSObject, Mappable {
var code : Int?
var data : AnyObject?
var message : [String]?
required init?(map: Map) {
}
func mapping(map: Map) {
code <- map["code"]
data <- map["data"]
message <- map["messages"]
}
}
答
您可以创建自定义转换为这样的转变。
创建一个类,即符合TransformType
协议:
class ErrorMessagesTransform: TransformType {
func transformFromJSON(_ value: Any?) -> Array<String>? {
if let value = value as? String {
return [value]
}
if let value = value as? [String] {
return value
}
return []
}
func transformToJSON(_ value: Array<String>?) -> String? {
// TODO: If needed
return nil
}
}
在映射功能
然后就去做:
func mapping(map: Map) {
code <- map["code"]
data <- map["data"]
message <- (map["messages"], ErrorMessagesTransform())
}
谢谢你,救我的一天 –