【发布时间】:2015-11-06 19:15:33
【问题描述】:
当我尝试从 url 解析 json 时,我得到一个空值。我缺少什么,或者 应该 实现什么来简单地加载一个 json 值并将其放入 UICollectionView 中?
这是我从网络服务获得的 json。我已经用验证工具验证了它是正确的:
{
"status": 1,
"count": 72,
"data": [
{
"id": 818,
"name": "1. product",
"price": "155.00"
},
{
"id": 812,
"name": "2. product",
"price": "62.00"
},
{
"id": 26,
"name": "3. product",
"price": "213.00"
},
{
"id": 657,
"name": "4. product",
"price": "21.00"
},
{
"id": 347,
"name": "5. product",
"price": "57.00"
}
我需要从上面的 json 中获取名称和价格值。
这是 viewDidLoad 中调用的 swiftyJSON 代码块。我怀疑问题出在这里,但我不确定。
let json = JSON(data: products)
if let productName = json["data"][0]["name"].string {
print("Product: \(productName)")
}
【问题讨论】:
-
您的代码打印什么?您能否详细说明您在哪里获得
products?如果打印products或json["data"]会发生什么? -
它不打印任何东西,因为以 "print("Product..." 开头的代码从未调用过。
-
在您的示例中
products是什么类型?你能多介绍一下如何从网络获取 json 的代码吗? -
没错,下面是DataManager中的sn-p代码;
-
let productsURL = url class DataManager { class func getProductsFromWebservice(success: ((productsData: NSData!) -> Void)) { //1 loadDataFromURL(NSURL(string: productsURL)!, 完成:{ (data, error) -> Void in //2 if let urlData = data { //3 success(productsData: urlData) } }) }
标签: ios json swift2 swifty-json