Ios 基于json中的值进行搜索
我的coredata模型中有一个名为Ios 基于json中的值进行搜索,ios,swift,uisearchbar,Ios,Swift,Uisearchbar,我的coredata模型中有一个名为name的属性,我可以根据它进行搜索,就像这样 filtered = self.newProdDetails.filter({( data : NewProduct) -> Bool in return (data.name!.lowercased().contains(searchText.lowercased())) }) 现在,我可以在cellForRowAt..中加载filtered数组,
name
的属性,我可以根据它进行搜索,就像这样
filtered = self.newProdDetails.filter({( data : NewProduct) -> Bool in
return (data.name!.lowercased().contains(searchText.lowercased()))
})
现在,我可以在cellForRowAt..
中加载filtered
数组,以便根据名称进行搜索
但对于另一个视图,有另一个实体具有名为customerJson
的属性。这个json中有customerName
,我想在此基础上进行搜索
在我首先提到的场景中,我想要搜索的元素(name
)直接是一个属性。但在第二种情况下,我要搜索的元素位于json中。那么在这个场景中,我如何将值分配给过滤的数组
我做过这样的事
for element in orderDetails {
if let jsonStr = element.value(forKey: "customerJson") as? String {
let data = jsonStr.data(using: String.Encoding.utf8, allowLossyConversion: false)!
do {
if let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] {
for item in json {
if item.key == "first_name" {
var customerName = (item.value as? String)! //HERE I GET THE CUSTOMER NAME. BUT HOW CAN I ASSIGN IT TO 'filtered' ARRAY FOR THE PURPOSE OF SEARCHING, I CAN'T FIGURE OUT.
}
}
}
} catch let error as NSError {
print("Failed to load: \(error.localizedDescription)")
}
}
}
只要在item.key==“first\u name”
的范围内完成,就可以了
filterArr = self.orderDetails.filter({( data : Order) -> Bool in
return (data.customerJson!.lowercased().contains(searchText.lowercased()))
})