Codable的概念和其他用法等不多讲,本文只讲当model的字段比json字段多的时候如何处理,貌似暂时没有看到相关的文章,故写出来供参考。
- 其实处理很简单,model多出的字段必须为Optional类型,并且赋初值
举个栗子:
json为
{ "name" : "zhangsan", "age" : 17, "father" : "laowang" }
model 为:
class Model: Codable { var name: String? = ""; var age: Int? = 17; var father: String? = ""; var mother: String? = ""; }
model里边多出了字段"mother",需要声明为Optional类型并且赋初值,这样声明的话如果json有mother字段则会给model赋上json里边的值,没有的话就略过。除此之外貌似没有更好的办法(当然添加CodingKey也可以,但是需要添加全部你想要转换的字段,较为麻烦,而且当json有mother字段而CodingKey里边没添加时那么不会给model的mother字段赋值)。
当json里边的字段跟model的字段类型不一致(比如数字转为字符)时转换会失败,暂未找到解决方法,有知道的童鞋告诉我一下,不胜感激!!!