oc时代, 自动化JSON to Model大家都习惯了, 也有很多第三方框架,比如YYModel一类, 刚开始Swift在这方面挺麻烦的, 比如Codable再到后面的宏, 其实都没必要
现在Swift + AI则不需要这么费事了,这里给大家一个超级简单的方案
{
"name": "你好",
"recordTime": 1760976000000,
"carbohydrate": "0.6",
"calories": 70,
"protein": 0.5
}
class Model {
let name: String
let recordTime: Int
let carbohydrate: String
let calories: Int
let protein: CGFloat
init(_ dict: [String: Any]){
self.name = dict["name"] as? String ?? ""
self.recordTime = dict["recordTime"] as? Int ?? 0
self.carbohydrate = dict["carbohydrate"] as? String ?? ""
self.calories = dict["calories"] as? Int ?? 0
self.protein = dict["protein"] as? CGFloat ?? 0
}
}
// 根据文件模型, 将这个JSON生成model
这里只是演示, 大家可以使用其他ai工具仿写就行
生成的结果, 再进行微调就行 如果有生成JSON的需要,让AI增加方法就行
class JSONModel {
let key1: String
let key2: Int
let key3: Double
let key4: Bool
let key5: String
let key6: String
let key7: Int
let key8: [SubItem]
init(_ dict: [String: Any]) {
self.key1 = dict["key1"] as? String ?? ""
self.key2 = dict["key2"] as? Int ?? 0
self.key3 = dict["key3"] as? Double ?? 0.0
self.key4 = dict["key4"] as? Bool ?? false
self.key5 = dict["key5"] as? String ?? ""
self.key6 = dict["key6"] as? String ?? ""
self.key7 = dict["key7"] as? Int ?? 0
self.key8 = (dict["key8"] as? [[String: Any]] ?? []).map { SubItem($0) }
}
}
class SubItem {
let subKey1: String
let subKey2: Int
init(_ dict: [String: Any]) {
self.subKey1 = dict["subKey1"] as? String ?? ""
self.subKey2 = dict["subKey2"] as? Int ?? 0
}
}