我有一个支持分页的json url。 我的问题是如何使用alamofire和swiftyjson解析这个分页页面?
我的json url喜欢:
{
"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()
}
)
}
但是当我滚动我的应用程序时,请停下来。
答案 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
}