可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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.