我有下一个模型进行解析
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 ""
我弄错了,请告诉我
我已经浏览了许多答案,但我不明白我的错误到底是什么。
尝试
var uuid: UUID = UUID ()
和
var uuid = UUID (). uuidString
答案 0 :(得分:1)
发生错误的原因是,通过确认Codable
协议,它试图合成这些值,并且当您添加一个不存在的值时,解码器会变得混乱。要解决此问题,您需要做的就是向您的结构中添加一个CodingKeys
枚举。
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"
}
}