Swift 2 SwiftyJSON API 数据到 UITableView

Posted

技术标签:

【中文标题】Swift 2 SwiftyJSON API 数据到 UITableView【英文标题】:Swift 2 SwiftyJSON API data to UITableView 【发布时间】:2016-01-31 09:10:30 【问题描述】:

我的应用应该显示 产品标题 / 价格 / 产品图片 / 产品描述,它会获取数据使用 AlamofireSwiftyJSON 以 JSON 格式显示,并在 UITableview 中显示。

JSON 数据的链接是:https://www.spree.co.za/api/v1/catalog/browse/2641

还有很多我不需要的其他信息。我将如何节省例如。数组中的“title”、“imageURL”、“Size”?

这是我用来获取“标题”的代码

var productTitles = JSON

func getJsonData()
    Alamofire.request(.GET, "https://www.spree.co.za/api/v1/catalog/browse/2641").responseJSON  (response) -> Void in

        //Check if the result have value
        if let value = response.result.value 

            let json = JSON(value)
            let objects = (json["products"])

            //While Loop
            var x = 0
            while x < objects.count 
                self.productTitles.append(objects[x]["title"])
                x++
            

            //Test
            print(self.productTitles[3])
        
    

【问题讨论】:

【参考方案1】:

你可以这样做:

func getTitlesFromJson(data: AnyObject?) -> [String] 
    guard data != nil else 
        return []
    
    let json = JSON(data!)

    var titles: [String] = []
    for (_, subJson): (String, JSON) in json["products"] 
        if let title = subJson["title"].string 
            titles.append(title)
        
    
    return titles

并像这样使用它:

Alamofire.request(...).responseJSON  (response) -> Void in

    //Check for error
    ...

    let titles = getTitlesFromJson(response.result.value)

    // Other actions
    ...


其他数组类似

【讨论】:

以上是关于Swift 2 SwiftyJSON API 数据到 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

SwiftyJSON 问题 Swift 2

Swift:如何将带有 Alamofilre 或 SwiftyJSON 的 JSON 字符串转换为 ObjectMapper?

Swift 2 + SwiftyJSON:使用未解决的标识符错误

将 SwiftyJSON 用于 Swift 3.1 的子数组

Swift:在 tableView 中过滤 SwiftyJSON 数据

Swift 1.2 中的 SwiftyJson 错误