基于json

时间:2018-02-20 05:52:09

标签: ios swift core-data

我的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"
} 

1 个答案:

答案 0 :(得分:1)

使用help:

简单地将您的JSON解析为数组或字典a / c到json
let arrayJson =  JSONSerialization.jsonObject(with:....

.....

然后将搜索简单地应用于这样的数组:

 let filterArr = arrayJson.filter {
        return (($0["first_name"] as! String).lowercased().contains(searchText.lowercased()))
    }