【发布时间】:2018-03-23 22:06:02
【问题描述】:
在这里,我已经编写了模型类,除了if let jsonObj = try JSONSerialization.jsonObject(with: data!) as? [String:AnyObject] { 在这一行之后,它正在退出 if 循环并且没有返回任何数据,谁能帮我解决这个问题?
var relatedProductsModel : RelatedProductsViewed ?
var relatedProductsApi = "http://www.json-generator.com/api/json/get/ckagXVRLvS?indent=2"
这是我的视图加载代码
self.relatedProductsDownloadJsonWithUrl(relatedApi: relatedProductsApi)
这是我获取数据的json函数
func relatedProductsDownloadJsonWithUrl(relatedApi: String){
print(relatedApi)
let url = URL(string: relatedApi)!
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
if error != nil { print(error!); return }
do {
if let jsonObj = try JSONSerialization.jsonObject(with: data!) as? [String:AnyObject] {
self.relatedProductsModel = RelatedProductsViewed(dict: jsonObj as [String : AnyObject])
DispatchQueue.main.async {
print(self.relatedProductsModel)
}
}
} catch {
print(error)
}
}
task.resume()
}
struct RelatedProductsViewed {
let productId : Int
let productName : String
let productSku : String
let productPrice : Int
let productsCount : Int
var relatedProducts = [RelatedProducts]()
init(dict : [String:Any]) {
if let arr = dict["related_products"] as? [[String: AnyObject]]{
var filterArr = [RelatedProducts]()
for obj in arr {
filterArr.append(RelatedProducts(dict: obj)!)
}
self.relatedProducts = filterArr
} else {
self.relatedProducts = [RelatedProducts]()
}
self.productId = (dict["product_id"] as? Int)!
self.productName = (dict["product_name"] as? String)!
self.productSku = (dict["product_sku"] as? String)!
self.productPrice = (dict["product_price"] as? Int)!
self.productsCount = (dict["related_products_count"] as? Int)!
}
}
【问题讨论】:
-
在 your 链接的问题中有答案。请学习阅读 JSON。
{}是字典,[]是数组。这很容易。你读过推荐的Correctly parse JSON in Swift 3 -
不,我现在正在阅读@vadian
-
感谢工作@vadian
-
@vadian:您能否将欺骗目标修复为直接指向here,而不是指向它当前指向的已删除问题?