关于NSNull
MuRanJiangXia opened this issue · comments
Cyan commented
let json: [String: Any ] = [
"name": NSNull(),
"weight": 6.66,
]
如果接口返回 为null
struct Cat: Convertible {
var name: String? = ""
var weight: Double?
mutating func kj_didConvertToModel(from json: [String : Any]) {
if name == nil || name == "<null>" {
name = ""
}
}
}
就需要这样处理了,有没有规避null 的处理呢?不想每个属性都加个判断,这样很麻烦呀。
M了个J commented
现在框架内部会自动过滤NSNull,我加个单元测试上去
struct Cat: Convertible {
var weight: Double = 0.0
var name: String = "xx"
var data: NSNull?
}
let json: [String: Any] = [
"name": NSNull(),
"weight": 6.6,
"data": NSNull()
]
let cat = json.kj.model(Cat.self)
// convert failed, keep default value
XCTAssert(cat?.name == "xx")
XCTAssert(cat?.weight == 6.6)
XCTAssert(cat?.data == NSNull())
M了个J commented
如果你是用pod,可以重新装一下KakaJSON
- 删除项目底下
Pods/KakaJSON
文件夹 - 命令行
rm -rf ~/Library/Caches/CocoaPods/Pods/Release/KakaJSON
- 重新
pod install
Cyan commented
恩恩 可以了。