Swift 5.0 使用MJExtension 字典转模型

记录下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?
    // 数组转模型数组需要手动解析
    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("中华田园犬")

你可能感兴趣的:(Swift 5.0 使用MJExtension 字典转模型)