如何在swift中使用alamofire和swiftyjson解析分页url?

Posted

技术标签:

【中文标题】如何在swift中使用alamofire和swiftyjson解析分页url?【英文标题】:how to parse pagination url using alamofire and swiftyjson in swift? 【发布时间】:2017-03-07 18:50:32 【问题描述】:

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

我的 json 网址如:

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

** !!!!!!!更新!!!!!!!**

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

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()
        
        )

    

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

【问题讨论】:

我想先谷歌一下你会很容易知道的。 那么分页的目的是什么?您必须已经点击第二页 URL,才能获得第三页。 【参考方案1】:
// 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


【讨论】:

我的意思是,我在数据中有一个图像 url,我想使用所有分页页面解析数据中的这些图像并将这些图像添加到我的数组中。 您想解析整个集合的每个data 节点吗?所以你想使用nextPageUrl直到你到达最后来获取每组数据?

以上是关于如何在swift中使用alamofire和swiftyjson解析分页url?的主要内容,如果未能解决你的问题,请参考以下文章

Alamofire 4 请求返回 NSArray,无法弄清楚如何在 Swift 3 中使用 SwiftyJSON 进行解析

如何在 Swift 3 中使用 Alamofire 4 解析这个 json?

如何在 Alamofire 4.0 中仅使用参数和正文在 swift 中使用 POST 方法发送请求?

如何在 swift 3 中使用 Alamofire 制作和发送字典数组(JSON 格式)发送到服务器

如何在 Swift / Alamofire 中使用 multipartFormData?

如何在 Swift 中使用 Alamofire 与 Multipart 一起使用具有不同键和多种参数的多个图像