[英]How to sort JSON Array from API alphabetically?
I'm a newbie in programming world, especially Swift. 我是编程领域的新手,尤其是Swift。 Now I am using Swift 5 in Xcode.
现在我在Xcode中使用Swift 5。 By following code below, I successfully get JSON data from API and put it in Table View.
通过下面的代码,我成功地从API获取了JSON数据并将其放入“表格视图”中。 This data default sorted by "id".
该数据默认按“ id”排序。 How to sort this data alphabetically based on "first_name" and put it in Table View?
如何根据“ first_name”按字母顺序对数据进行排序并将其放入“表格视图”中?
// Model.swift
struct UserModel {
var id: Int?
var first_name: String?
var last_name: String?
init(data: JSON?) {
self.id = data?["id"].int
self.first_name = data?["first_name"].string
self.last_name = data?["last_name"].string
}
}
// UserViewController.swift
var users: [UserModel]?
// API Get result
switch result {
case .success(let value):
if let data = JSON(value).array {
self.users = data.map({ UserModel(data: $0) })
}
self.tableView.reloadData()
case .failure(let error):
print(error.localizedDescription)
}
雨燕3&雨燕4&雨燕5
self.users.sorted(by: { $0.first_name < $1.first_name})
Sorting for array of object can be done using below code 可以使用以下代码对对象数组进行排序
self.users.sorted(by: {$0.first_name < $1.first_name})
Sorting for ignore case. 排序忽略大小写。
self.users.sorted(by: {$0.first_name.lowercased() < $1.first_name.lowercased()})
inorder to sort array struct in swift. 为了快速排序数组结构。 you can simple do
你可以简单地做
self.users.sort(by: {$0.first_name < $1.first_name})
You can sort the users
array
using sort(by:)
method like so, 您可以像这样使用
sort(by:)
方法对users
array
进行sort(by:)
,
users?.sort(by: { (user1, user2) -> Bool in
if let name1 = user1.first_name, let name2 = user2.first_name {
return name1 < name2
}
return false
})
sort(by:)
sorts the collection in-place. sort(by:)
对集合进行原位排序。
Sorts the collection in place, using the given predicate as the comparison between elements.
使用给定的谓词作为元素之间的比较,对集合进行排序。
You can use sorted(by:)
method for out-place sorting. 您可以使用
sorted(by:)
方法进行场所排序。
Returns the elements of the sequence, sorted using the given predicate as the comparison between elements.
返回序列中的元素,使用给定谓词作为元素之间的比较进行排序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.