如何在json swift中过滤内容

Posted

技术标签:

【中文标题】如何在json swift中过滤内容【英文标题】:How to filter content in json swift 【发布时间】:2015-10-20 13:50:37 【问题描述】:

我的应用中有一个包含各种类别的侧菜单,例如:“所有帖子、国际、国内等”。现在我从 API 接收数据并使用 JSON 解析它。此数据存储在NSDictionary

代码如下:

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="international"、TAG="national" 等字段。

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

【问题讨论】:

members.append(member) 之前检查member.tag 【参考方案1】:

您只需在将“新”成员附加到数组之前检查 TAG 的值

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)
    

【讨论】:

以上是关于如何在json swift中过滤内容的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中使用搜索栏过滤具有自定义单元格的 UITableView 的内容?

尝试在 Swift 中使用 UISearchResult。如何实现过滤?

如何在swift中过滤包含属性的数组

如何在 swift 2 中解析和显示 JSON?

如何在 Swift 中将数组添加到我的 JSON 字典

通过大型 Array Swift 过滤