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