How to search from array of SwiftyJSON objects?

匿名 (未验证) 提交于 2019-12-03 08:52:47

问题:

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.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!