你好,
我正在尝试将一个 json 映射到一个对象,并且有一个始终为零的值(一个整数)。
这是我的 json 示例:
{"username":"user1","age":3}
这是我的代码:
class T1: Mappable {
var username: String?
var age: String?
required init?(map: Map) {
}
// Mappable
func mapping(map: Map) {
let transform = TransformOf<Int, String>(fromJSON: { (value: String?) -> Int? in
// transform value from String? to Int?
return Int(value!)
}, toJSON: { (value: Int?) -> String? in
// transform value from Int? to String?
if let value = value {
return String(value)
}
return nil
})
username <- map["username"]
age <- (map["age"], transform)
}
}
由于json在不使用“”的情况下返回“年龄”,我尝试使用transformOF函数将其转换为字符串,因此我可以将其存储在字符串类型的“年龄”变量中(我无法更改“年龄”的类型到 Int,因为接下来我将添加领域支持,并且我需要该变量为字符串)。
无论如何,由于我尝试应用转换函数时出现此错误,我无法编译该项目:
二元运算符 '<-' 不能应用于类型为 'String' 和 '(Map, TransformOf
)'
如何正确使用 TransformOf 将整数转换为字符串?
谢谢
+1
@adasoft-dev,你在做相反的事情。 TransformOf
定义为TransformOf<Object, JSON>
,对应于String
和Int
。
let transform = TransformOf<String, Int>(
fromJSON: { (value: Int?) -> String? in
if let value = value {
return String(value)
} else {
return nil
}
},
toJSON: { (value: String?) -> Int? in
if let value = value {
return Int(value)
} else {
return nil
}
}
)
我也有同样的问题。 服务端总是返回int类型或者字符串类型的值,有时值会发生变化,所以希望类中定义的类型,json字符串中的值类型可以转换。 所以我不需要更改类中的类型。
最有用的评论
@adasoft-dev,你在做相反的事情。
TransformOf
定义为TransformOf<Object, JSON>
,对应于String
和Int
。