问题
I have an SwiftyJSON object.
How to search by key(name) from the array of SwiftyJSON object.
For Example :
let arrCountry = [JSON]()
Now one country array contains
{
countryid : "1"
name : "New York"
},
{
countryid : "2"
name : "Sydeny"
}
How to search by predicate or something?
If I search "y" from the array then it should return both object (Because both contains "y") in another JSON array. And If I type "Syd" then it should return only one object in JSON array. As LIKE query in SQL. And as we are doing with predicates...
回答1:
Get the array from the JSON
object with arrayObject
, cast it to the proper type and apply the filter
function, in this example to find the item whose name
is def
if let array = arrCountry.arrayObject as? [[String:String]],
foundItem = array.first(where: { $0["name"] == "def"}) {
print(foundItem)
}
Edit: For a refined search with NSPredicate
and a JSON
result use this
let searchText = "y"
let searchPredicate = NSPredicate(format: "name contains[cd] %@", searchText)
if let array = arrCountry.arrayObject as? [[String:String]] {
let foundItems = JSON(array.filter{ searchPredicate.evaluateWithObject($0) })
print(foundItems)
}
回答2:
You need to extract the dictionary Array from the JSON Object and the you can apply the Predicate to that array.
来源:https://stackoverflow.com/questions/37496384/how-to-search-from-array-of-swiftyjson-objects