記錄下swift怎么使用MJExtension 字典轉(zhuǎn)模型
1.普通的字典轉(zhuǎn)模型
import UIKit
import MJExtension
class PersonModel: NSObject {
// 創(chuàng)建屬性在前面加@objc 否則無(wú)法解析
@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)})
// 結(jié)果
Optional("張三")
Optional("李四")
Optional("王五")
2.字典數(shù)組嵌套轉(zhuǎn)模型
import UIKit
import MJExtension
class PersonModel: NSObject {
// 創(chuàng)建屬性在前面加@objc 否則無(wú)法解析
@objc var name: String?
@objc var age = 0
@objc var petArr: PeArrModel?
}
class PetsArrModel: NSObject {
@objc var petsArr: Array<PetModel>?
// 數(shù)組轉(zhuǎn)模型數(shù)組需要手動(dòng)解析
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)})
// 結(jié)果
Optional("泰迪")
Optional("二哈")
Optional("中華田園犬")