记录下swift怎么使用MJExtension 字典转模型
1.普通的字典转模型
import UIKit
import MJExtension
class PersonModel: NSObject {
// 创建属性在前面加@objc 否则无法解析
@objc var name: String?
@objc var age = 0
}
// 使用
let arr1 = [["name": "张三", "age": 12],["name": "李四", "age": 13],["name": "王五", "age": 14]]
var dataArr = [PersonModel]()
_ = arr1.map({dataArr.append(PersonModel.mj_object(withKeyValues: $0))})
_ = dataArr.map({print($0.name as Any)})
// 结果
Optional("张三")
Optional("李四")
Optional("王五")
2.字典数组嵌套转模型
import UIKit
import MJExtension
class PersonModel: NSObject {
// 创建属性在前面加@objc 否则无法解析
@objc var name: String?
@objc var age = 0
@objc var petArr: PeArrModel?
}
class PetsArrModel: NSObject {
@objc var petsArr: Array<PetModel>?
// 数组转模型数组需要手动解析
override func mj_keyValuesDidFinishConvertingToObject() {
self.petsArr = PetsArrModel.mj_objectArray(withKeyValuesArray: self.petsArr)?.copy() as? [PetsArrModel]
}
}
class PetModel: NSObject {
@objc var nickeName: String?
}
// 使用
let arr1 = [["name": "张三", "age": 12, "petArr": [["nickeName": "泰迪"]]],["name": "李四", "age": 13, "petArr": [["nickeName": "二哈"]]],["name": "王五", "age": 14, "petArr": [["nickeName": "中华田园犬"]]]]
var dataArr = [PersonModel]()
_ = arr1.map({dataArr.append(PersonModel.mj_object(withKeyValues: $0))})
_ = dataArr.map({print($0.petArr?[0].nickName as Any)})
// 结果
Optional("泰迪")
Optional("二哈")
Optional("中华田园犬")