Ios 如何从json按日期对帖子排序
注意:为了使代码更具可读性,必须在此处添加文本,以便系统可以接受编辑: 我的json数据是:Ios 如何从json按日期对帖子排序,ios,sorting,swift3,Ios,Sorting,Swift3,注意:为了使代码更具可读性,必须在此处添加文本,以便系统可以接受编辑: 我的json数据是: [ { "language": "en", "polarity": 10, "rating": "", "source": "Facebook", "text": "FortyLove Sport Centers likes a photo.", "time": "2013-06-02", "wordsCount"
[
{
"language": "en",
"polarity": 10,
"rating": "",
"source": "Facebook",
"text": "FortyLove Sport Centers likes a photo.",
"time": "2013-06-02",
"wordsCount": 6,
"details": "http://tour-pedia.org/api/getReviewDetails? id=53513431ae9eef9405b2f18c"
},
{
"language": "en",
"polarity": 10,
"rating": "",
"source": "Facebook",
"text": "FortyLove Sport Centers likes a status.",
"time": "2013-05-26",
"wordsCount": 6,
"details": "http://tour-pedia.org/api/getReviewDetails?id=53513431ae9eef9405b2f18d"
}
]
我的源代码是
let task = URLSession.shared.dataTask(with: URL(string: "http://tour-pedia.org/api/getReviews?location=Rome&category=poi")!) { (data, response , error) in
if error != nil {
print(error?.localizedDescription ?? "")
}
if let resultArray = (try? JSONSerialization.jsonObject(with: data!, options: [])) as? [[String:Any]] {
for jsonreviews in resultArray {
let review = Review()
review.rating = jsonreviews["rating"] as? Int ?? 0
review.text = jsonreviews["text"] as! String
review.time = jsonreviews["time"] as! String
reviews.append(review)
}
DispatchQueue.main.async {
self.tableview.reloadData() // if you use tableview
}
}
}
task.resume()
我不知道如何按日期排序,请帮助我编写代码您应该对API调用的响应进行建模,然后对建模数据数组调用排序函数。以下是Apple关于使用json的博客: 这是一个方法,因为您的数据位于reviews数组中
func sortByDate(){
let formatter = DateFormatter()
//define your date format
formatter.dateFormat = "yyyy-MM-dd "
formatter.timeZone = TimeZone(identifier: "UTC")
reviews.sort{
let date1 = formatter.date(from: $0.time)
let date2 = formatter.date(from: $1.time)
if date1 != nil && date2 != nil{
return date1! > date2!
}
return false
}
}
只需转换为NSDate,然后使用SORTEDY您没有日期。时间值是一个格式为yyyy-MM-dd的字符串。只需像对任何字符串一样对该字符串进行排序。以yyyy MM dd形式表示日期的字符串可以作为普通字符串进行排序,排序后的值将按正确的顺序进行排序。您能告诉我如何调用吗?您的日期格式对于问题中的数据来说甚至都不正确。您的意思是,我想将字符串更改为nsdate,它不起作用,一旦看到我的代码如果你想按日期排序,你必须将字符串转换成日期对象。你不需要自己做,在sortByDate中,我们正在将字符串转换成日期。@jithendra Solanki,我想知道在代码中它在哪里可以调用sortByDate,你能给我完美的答案吗explanation@udaykumar我已经编辑了答案以符合您的要求。现在在将表视图重新加载为之前调用sortByDate