2015-10-20 65 views
1

我在我的应用程序中有各种类别的菜单,例如:“所有帖子,国际,国家等”。现在我从API接收数据并使用JSON解析它。这些数据存储在NSDictionary如何筛选json swift中的内容

下面的代码:

import Foundation 

class Member 
{ 
    let imageName: NSData! 
    let name: String? 
    let about: String? 
    let tag : String? 

    init(dictionary:NSDictionary) 
    { 
     let url = dictionary["imageUrl"] as? String 
     let imgdata = NSURL(string: url!) 
     imageName = NSData(contentsOfURL: imgdata!) 
     name = dictionary["title"] as? String 
     tag = dictionary["TAG"] as? String 
     // fixup the about text to add newlines 
     let unescapedAbout = dictionary["postBody"] as? String 
     about = unescapedAbout?.stringByReplacingOccurrencesOfString("\\n", withString:"\n", options:[], range:nil) 
    } 

    class func loadMembersFromFile(path: NSURL) -> [Member] 
    { 
     var members:[Member] = [] 
     if let data = NSData(contentsOfURL: path), 
     // if let data = NSData(contentsOfFile: path, options:[]), 
      json = try! NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments)as? NSDictionary, 
      team = json["items"] as? [NSDictionary]{ 
       for memberDictionary in team { 
        let member = Member(dictionary: memberDictionary) 
        members.append(member) 
       } 
     } 
     return members 
    } 
} 

现在JSON文件包含一个字段作为TAG = “国际”,TAG = “国家” 等。

我想根据上面的标签过滤这个JSON数据,并只加载属于我的表视图中相应的侧菜单条目的数据。

+0

之前'members.append(会员)前检查标签的值'检查'member.tag' – Larme

回答

0

请让你的“新”成员追加到数组

for memberDictionary in team { 
    let member = Member(dictionary: memberDictionary) 
    guard let tag = member.tag as? String else { 
     continue 
    } 
    if tag == theTag { // Add a parameter 'theTag' (String) to your method 
     members.append(member) 
    } 
}