【发布时间】:2018-03-31 09:24:17
【问题描述】:
我有一个问题...我正在使用 WooCommerce API 从数据库中获取数据...这段代码一切都很好,但我在获取特色照片 (featured_src) 时遇到了一个奇怪的问题,特色照片的价值是当产品图像存在时字符串,但当产品没有图像时,我得到一个布尔值而不是字符串(我得到一个假)。应用程序崩溃。正如您在我的代码中看到的,我将属性指定为 String 或 int 或....并且我将 features_src 设置为字符串,但有时我会得到一个 bool 值。我应该如何编辑我的代码?
import UIKit
struct Products: Decodable {
let products: [product]
}
struct product: Decodable {
let title: String
let id: Int
let price: String
let sale_price: String?
let featured_src: String?
let short_description: String
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let jsonUrlString = "https://www.komeil24.com/wc-api/v3/products"
guard let url = URL(string: jsonUrlString) else {return}
URLSession.shared.dataTask(with: url) { (data, response, error) in
guard let data = data else {return}
do {
let products = try JSONDecoder().decode(Products.self, from: data)
print(products.products)
} catch let jsonErr {
print("Error" , jsonErr)
}
}.resume()
}
}
【问题讨论】:
-
你必须编写一个自定义的初始化器来有条件地处理这种情况。
-
需要用正确的句子进行更多说明。
标签: xcode swift4 jsondecoder