json 如何将布尔变量添加到结构体中?

ih99xse1  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(141)

我想在这个结构中添加一个isFavourite变量。当我添加这个时,JSON解码会给出错误。如何管理JSON文件中的外部变量?

struct ProductModel : Decodable {
    let productData : [ProductData]
    
    private enum CodingKeys:String,CodingKey {
        case productData = "data"
    }
}

struct ProductData : Identifiable,Decodable,Hashable {
    var id : Int
    var title :String
    var type : String
    var description : String
    var filename : String
    var price : Float
    var rating : Int
    //var imageName : String? = "vegetable"
    
    init() {
        self.id = 0
        self.title = ""
        self.type = ""
        self.description = ""
        self.filename = ""
        self.price = 0.0
        self.rating = 0
    }
}
8i9zcol2

8i9zcol21#

只需添加CodingKeys并省略isFavourite
并将所有永远不会更改的结构体成员声明为常量(let

struct ProductData : Identifiable, Decodable, Hashable {
    let id : Int
    let title :String
    let type : String
    let description : String
    let filename : String

    var price : Float
    var rating : Int

    var isFavourite = false
  
    private enum CodingKeys: String, CodingKey {
        case id, title, type, description, filename, price, rating
    }   
}

如果你需要一个初始化器,写一个带有默认值的***真实的***init方法。这比init()更通用。

相关问题