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<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("中华田园犬")
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,241评论 4 61
  • 他年 欲望隐隐作乱 岁月席卷了流年 我不屑的看着屋檐 真情被敷衍 是谁给了谁希望 从而制造出不安 思想向上攀岩 像...
    老沈带刺阅读 364评论 0 3
  • 稍微休息了片刻的秋雨,在中午时分,又开始了它的表演;街道的路湿滑又有少许积水,行人们撑着伞小心翼翼地走着,雨水沿着...
    好郝说话阅读 293评论 0 1
  • 我喜欢你约我见面的样子 想象的场景都没有实现的,那种 我喜欢你说话的样子 凝望着我,却不动声色,那种 我喜欢你牵我...
    贝贝赵阅读 193评论 0 0
  • 记忆写下最悲伤的歌谣 他用梦收买一朵花的轻叹 幻影要迎合风的喷灌 坠落拆卸着世界的侵扰 南面开着窗 风清甜却轻佻 ...
    楚天晓阅读 190评论 0 1