Model 不能';t使用UUID()解析Json名称
我有下一个解析模型Model 不能';t使用UUID()解析Json名称,model,uuid,swiftui,codable,swift5,Model,Uuid,Swiftui,Codable,Swift5,我有下一个解析模型 struct Unicards: Hashable, Codable, Identifiable { var id: String? var title: String? var info: String? var brand: String? var model: String? var make_year: Int? var message: String? var message_color: String? 我有一个Json文件,其中有许多重复的数组,具有不同的数据
struct Unicards: Hashable, Codable, Identifiable {
var id: String?
var title: String?
var info: String?
var brand: String?
var model: String?
var make_year: Int?
var message: String?
var message_color: String?
我有一个Json文件,其中有许多重复的数组,具有不同的数据集,但具有相同的头,有时还有重复的ID
我想用
var uuid = UUID()
为每个数据集生成唯一ID并使用唯一ID函数
list (model, id: \ .uuid)
但是当我添加这一行时,我得到了一个错误
"Thread 1: Fatal error: Couldn't parse" Json name ""
我犯了什么错误,请告诉我
我已经看过很多答案了,但我不明白我到底错在哪里
尝试
及
错误的原因是,通过确认
Codable
协议,它试图合成值,当您添加一个不存在的值时,解码器会感到困惑。要解决这个问题,您只需将CodingKeys
enum添加到结构中
struct Unicards: Hashable, Codable, Identifiable {
var uuid: UUID = UUID()
var id: String?
var title: String?
var info: String?
var brand: String?
var model: String?
var make_year: Int? // by convention this should be makeYear
var message: String?
var message_color: String? // by convention this should be messageColor
enum CodingKeys: String, CodingKey {
case id
case title
case info
case brand
case model
case message
case make_year
case message_color
// if you use the usual naming convention, you could swap these out
// case makeYear = "make_year",
// case messageColor = "message_color"
}
}
var uuid = UUID (). uuidString
struct Unicards: Hashable, Codable, Identifiable {
var uuid: UUID = UUID()
var id: String?
var title: String?
var info: String?
var brand: String?
var model: String?
var make_year: Int? // by convention this should be makeYear
var message: String?
var message_color: String? // by convention this should be messageColor
enum CodingKeys: String, CodingKey {
case id
case title
case info
case brand
case model
case message
case make_year
case message_color
// if you use the usual naming convention, you could swap these out
// case makeYear = "make_year",
// case messageColor = "message_color"
}
}