2016-01-31 4 views
1

Мое приложение должно показать название продукта/цена/изображения продукта/описание продукта и извлекает данные в формате JSON с использованием Alamofire и SwiftyJSON и шоу это в UITableview.Swift 2 SwiftyJSON данные API в UITableView

Ссылка на данные JSON является: https://www.spree.co.za/api/v1/catalog/browse/2641

Существует нагрузки другой информации, а также которые я не нуждаюсь. Как я могу сэкономить, например. «title», «imageURL», «Размер» в массивах?

Это мой код, который я использовал, чтобы получить "титулы"

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]) 
     } 
    } 
} 

ответ

0

Вы можете сделать это следующим образом:

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 
    ... 

} 

Другие массивы выполняются аналогично

Смежные вопросы