Swift 创建快速json字符串数组

Swift 创建快速json字符串数组,swift,swifty-json,Swift,Swifty Json,我问了另一个类似于这个问题的问题,但我会尝试重新编写它,以便清楚地知道我到底想做什么。我现在有一个JSON文件,它是这样分解的:有一个顶级对象,从这个对象中有一个对象数组,每个对象都包含字符串和int。我想将这些对象中的某些字符串值放入一个数组中,我可以使用该数组在UITableView中显示,我在任何地方看到的唯一方法都使用这个。append函数,这是伟大的,当你只是检查数组追加一次,也许每周几次,但我想数组显示最新的版本,每次函数被调用 到目前为止,我已经尝试了许多不同的方法,通过在swif

我问了另一个类似于这个问题的问题,但我会尝试重新编写它,以便清楚地知道我到底想做什么。我现在有一个JSON文件,它是这样分解的:有一个顶级对象,从这个对象中有一个对象数组,每个对象都包含字符串和int。我想将这些对象中的某些字符串值放入一个数组中,我可以使用该数组在UITableView中显示,我在任何地方看到的唯一方法都使用这个。append函数,这是伟大的,当你只是检查数组追加一次,也许每周几次,但我想数组显示最新的版本,每次函数被调用

到目前为止,我已经尝试了许多不同的方法,通过在swift中添加一个数组(我称之为NameList),将每个对象中包含的名称字符串强制转换为一个数组。这样做会导致程序在将每个名称追加到数组中时暂停。我的最后一个问题得到了做plist的建议,但我想是因为我不清楚我到底遇到了什么问题。因此,再次总结一下,我只想将所有字符串值转换为一个可以由tableview调用的数组。是否可以在不每次追加数组的情况下直接将json中的字符串发送到tableview?我目前的代码是:

func updateArr() {        
    let path = NSBundle.mainBundle().pathForResource("CardList", ofType: "json")
    let jsonData = NSData(contentsOfFile: path!, options: NSDataReadingOptions.DataReadingMappedIfSafe, error: nil)
    let json = JSON(data: jsonData!)
    for (key, subJson) in json["array"] {
        if let Name = subJson["Name"].string {
            if let Class = subJson["Class"].number {
                if Class == Int(1) {
            cardNameList.append(Name)
            println(cardNameList)
                }
            }
        }
    }
}

将值从json对象强制转换为定义的值可以是这样的

if let Name:String = subJson["Name"] as! String {
       if let Class:Number = subJson["Class"] as! Number {

       }
}

很抱歉,没有继续回答其他帖子中的评论。 我再次建议使用属性列表文件

似乎您有一组字典,其中有两个键
name
Class
, 因此,plist结构可能看起来像

<dict>
    <key>array</key>
    <array>
        <dict>
            <key>name</key>
            <string>Alpha</string>
            <key>Class</key>
            <integer>1</integer>
        </dict>
        <dict>
            <key>name</key>
            <string>Beta</string>
            <key>Class</key>
            <integer>2</integer>
        </dict>
    <array>
</dict>

plistDict是plist文件的反序列化内容

,这样做可以让它轻松进入数组,而无需每次追加数组?基本上,我只是想在tableview中获取[“Name”]而已。我唯一关心的是转换成plist的问题是,我还计划在android中使用这个数据库,并用同一种语言同时更新这两个数据库。据我所知,就简单的数据库而言,在android中使用json要容易得多。我的印象是,最高优先级是速度。我想这是过滤和映射大量数据的最快方法之一。使用ObjC或Swift可以很容易地将JSON转换为plist,反之亦然。我尽了最大努力避免重做整个数据库,但你让我相信我应该这样做。使用plist,我是否仍然必须将数据解析为数组以在Tableview上显示,还是只能使用映射的字符串?您希望显示哪些信息(有多少属性)?到目前为止,我们只有
名称
,而
类不会显示。它只是一个确定可能存储哪些名称的排序工具。还将显示3个其他整数和一个描述字符串。
if let cardArray = plistDict["array"] {
  let names = cardArray.filter {$0["Class"] == 1} .map {$0["name"]! }
}