[英]iOS Swift :Object mapper conditional mapping
我是swift的新手,使用对象映射器进行映射,如果消息键是json或string中的数组,则如何映射它总是返回string? 杰森回应
{“错误”:{“代码”:404,“消息”:“消息”}}
{“ error”:{“ code”:406,“ messages”:[“ message”]}}
我的课
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())
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.