如何在swift中为数组内的字典创建模型类?

问题描述 投票:0回答:1

这是我的 JSON:

[ {
    "id": 6854,
    "name": "Laundry Iron",
    "images": [
      {
        "id": 6856,
        "src": "https://abcd.com/yzx/uploads/1750.jpg",
      }
    ], 
  
     } ]

我们如何制作模型类以获得

"images":["src": "String" ]
?我想抓住“src”,我尝试过这样做,但它不起作用:

class ProductModel {
    
    var title: String?
    var regularPrice: Int?
    var salePrice: Int?
    var productDescroption: String?
    var imageUrl: [ImageUrl]?
    
    init(productJsonL: NSDictionary) {
        self.title = productJsonL["name"] as? String
        self.regularPrice = productJsonL["regular_price"] as? Int
        self.salePrice = productJsonL["sale_price"] as? Int
        self.productDescroption = productJsonL["description"] as? String
         //The problem is here ........
       //self.imageUrl = productJsonL["images"]![0]!["src"] as? String
        self.imageUrl = ImageUrl(imageUrlJson: (productJsonL["images"]![0] as? NSDictionary)!)
        
    }
}



class ImageUrl {

    var source: String?
    init(imageUrlJson: NSDictionary) {
        self.source = imageUrlJson["src"] as? String
    }
   
}

请用我上面所做的结构来纠正我,以便我可以将所有内容一次附加到数组中?

ios json swift
1个回答
1
投票

你需要

Codable

struct Root: Codable {
    let id: Int
    let name: String
    let images: [Image]
}

struct Image: Codable {
    let id: Int
    let src: String    //  or let src: URL
}

do {

    let res = try JSONDecoder().decode([Root].self, from: data)
    print(res)

}
catch {

    print(error)
}
© www.soinside.com 2019 - 2024. All rights reserved.