如何在swift中过滤json对象?

如何在swift中过滤json对象?

问题描述:

如何过滤这些json对象?我的意思是我想只打印患者的ID等于3如何在swift中过滤json对象?

var patients: Array<AnyObject>? if let obj: AnyObject = manager?.responseObject as AnyObject? { 
      if let pats = obj["patients"] as! Array<AnyObject>? { 
       patients = pats 
      } 
     } 

这是我的印刷可变

{ 
    patients =  (
       { 
      city = "\U0411\U0430\U044f\U043d\U0445\U043e\U043d\U0433\U043e\U0440"; 
      district = "\U0411\U0430\U044f\U043d\U0445\U043e\U043d\U0433\U043e\U0440"; 
      firstname = fdfsdf; 
      lastname = dsfgsdfg; 
      "patient_id" = 1064; 
      "patient_status" = 3; 
      "register_id" = "\U0430\U043083040411"; 
     } 
       { 
      city = "\U0411\U0430\U044f\U043d\U0445\U043e\U043d\U0433\U043e\U0440"; 
      district = "\U0411\U0430\U044f\U043d\U0445\U043e\U043d\U0433\U043e\U0440"; 
      firstname = dwfw; 
      lastname = dsfsdf; 
      "patient_id" = 1056; 
      "patient_status" = 1; 
      "register_id" = "\U0443\U044399111134"; 
     } 
} 
+0

'if let pats = obj [“patients”] as [String:Any] {patients = pats.filter {$ 0.patient_id == 3}}''或者类似的东西? – Larme

请投下类型下尽可能多地。

所有类型都比AnyObject更具体,JSON字典总是[String:AnyObject]而JSON数组是Array<[String:AnyObject]>。仅当数组包含另一个数组或更多嵌套时,才使用Array<AnyObject>

使用filter功能筛选患者。

var patients = Array<[String:AnyObject]>() 

if let obj = manager?.responseObject as? [String:AnyObject] { 
    if let pats = obj["patients"] as? Array<[String:AnyObject]> { 
     patients = pats.filter { $0["patient_status"] as! Int == 3 } 
    } 
} 

注:在斯威夫特3 AnyObject已替换为Any

+0

非常感谢你的人 –