我的tableviewcell名称值是这样的..
for asd in orderDetails {
if let jsonStr = asd.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" {
cell.nameLabel.text = item.value as? String //ASSIGNED HERE
}
}
}
} catch let error as NSError {
print("Failed to load: \(error.localizedDescription)")
}
}
}
现在我想根据此名称搜索搜索栏。在其他直接提到核心数据属性的情况下进行搜索时,我做了类似的工作,但工作正常。
filtered = self.newProdDetails.filter({( data : NewProduct) -> Bool in
return (data.name?.lowercased().contains(searchText.lowercased()))! //Here the entity NewProduct has an attribute name
})
但是在当前场景中,该属性是一个名为customer_json
的json字符串,我希望根据first_name
进行过滤..
customer_json={
"mobile_number”:”9876543210”,
"first_name”:”testName”,
"last_name”:”testLastName”,
"seller_id":"93"
}
答案 0 :(得分:1)
使用help:
简单地将您的JSON解析为数组或字典a / c到jsonlet arrayJson = JSONSerialization.jsonObject(with:....
.....
然后将搜索简单地应用于这样的数组:
let filterArr = arrayJson.filter {
return (($0["first_name"] as! String).lowercased().contains(searchText.lowercased()))
}