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的字段類型不一致(比如數字轉為字符)時轉換會失敗,暫未找到解決方法,有知道的童鞋告訴我一下,不勝感激!!!