使用swift4提供的新特性Codable来实现字典转模型
写在前面,使用过程中要知道的几个小知识点
tip1:
如果模型中的属性不包含自定义属性,只有字典中的属性(不是一一对应),这时转模型就可以不用实现 required init(from: Decoder) ,直接转模型就可以如果模型中包含了自定义属性,必须实现 required init(from: Decoder) 并且在内部对每个属性进行取值赋值,自定义属性根据需要可以选择赋值也可以不赋值
tip2:
如果模型中的属性与字典中的key是一一对应关系,并且不包含自定义属性,那么模型中除了要实现Codable协议外,不需要写任何代码,直接进行转模型就可以tip3:
如果返回的字典中的key与模型中的属性名称定义规范不同,可以在 CodingKeys 中对该字段进行名称映射
注意:模型必须实现Codable协议,模型中嵌套的模型flatOptions和horsepoint对应的模型也必须实现Codable协议
如果包含自定义属性,则必须在 required init(from: Decoder) 中解码
假设字典中属性名称不符合模型命名规则,可以在CodingKeys中设置映射
上图中字典中的字段叫geoPoint,模型中与之对应的属性为horsePoint
ps:
1.使用 required init(from: Decoder) 进行解码的前提,需要定义遵守CodingKey协议的枚举,在这个枚举中定义所有需要进行解码的属性
2."CodingKeys" 名称可以随意起,不是固定的。
网友评论
但能力不行,只能慢慢完善。