kakaopensource / KakaJSON

Fast conversion between JSON and model in Swift.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

关于NSNull

MuRanJiangXia opened this issue · comments

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 的处理呢?不想每个属性都加个判断,这样很麻烦呀。

现在框架内部会自动过滤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())

如果你是用pod,可以重新装一下KakaJSON

  • 删除项目底下Pods/KakaJSON文件夹
  • 命令行rm -rf ~/Library/Caches/CocoaPods/Pods/Release/KakaJSON
  • 重新pod install
commented

恩恩 可以了。