2017-03-07 72 views
0

我有一个支持分页的json网址。 我的问题是我如何解析这个分页页面使用alamofire和swiftyjson?如何在swift中使用alamofire和swiftyjson解析分页url?

的json的网址,如:

{ 
    "meta":{ 
     "code":200 
    }, 
    "data":{ }, 
    "pagination":{ 
     "total":86, 
     "totalPages":3, 
     "page":1, 
     "nextPage":2, 
     "nextPageUrl":"http://.............?page=2" 
    } 
} 

** !!!!!!! UPDATE !!!!!!! **

我这样的代码,但我得到了一些异常:

func GetDataFromUrl(from:String){ 

     Alamofire.request(from, method: .get).validate().responseJSON { response in 
      switch response.result { 
      case .success(let value): 
       let json = JSON(value) 

       self.storeData = [PopulerMagazalarData]() 

         //...Creating Data Obj. 

         let data = PopulerMagazalarData() 

         let username = json["data"]["store"]["user"]["username"].string 
         let userpic = json["data"]["store"]["user"]["profilePicture"].string 
         let productsCount = json["data"]["store"]["productsCount"].int 
         let description = json["data"]["store"]["description"].string 
         let followedby = json["data"]["store"]["user"]["counts"]["followedBy"].int 
         let totalPage = json["pagination"]["totalPages"].int 
         let count:Int? = json["data"]["products"].array?.count 
         if let ct = count { 

          for index in 0...ct-1{ 

          let datas = PopulerMagazalarData() 

          let images = json["data"]["products"][index]["images"]["standart"]["url"].string 

          datas.img1 = images 
          self.storeData.append(datas) 
          } 
         } 


         //***************** 
         data.username = username 
         data.profilPic = userpic 
         data.producsCount = productsCount 
         data.desc = description 
         data.followedby = followedby 

         //****************** 
         self.storeData.append(data) 

       for index in 2 ... totalPage! { 

        self.GetDataFromUrl(from: "https://api......../store/\(username!)?page=\(index)") 
       } 

            // for refresh collecitonView 
        self.refresh_now() 



      case .failure(let error): 
       print(error) 
      } 
     } 
    } 

    //...CollectionView ReloadData func... 
    func refresh_now(){ 

     DispatchQueue.main.async (
      execute: 
      { 
       self.MyStoreCollectionView.reloadData() 
     } 
     ) 

    } 

但是当我滚动我的应用程序下来。

+0

我猜Google可以先轻松知道。 –

+0

那么分页的目的是什么?您必须已经点击第二页网址才能看到第三页。 –

回答

0
// make the request with Alamofire 
Alamofire.request("myUrl").response { response in 

    // to create the SwiftyJSON object 
    let json = JSON(data: response.data!) 

    // get the values from the json response 
    let code = json["meta"]["code"].int 
    let total = json["pagination"]["total"].int 

} 
+0

我的意思是,我有一个图像的网址在数据中,我想解析这个图像的数据使用所有分页页面,并将这些图像添加到我的数组。 – SwiftyIso

+0

你想解析整个集合的每个'data'节点吗?所以你想使用'nextPageUrl',直到你到达最后才能获得每一组数据? – dstepan

相关问题