如何使用SwiftyJSON在Swift中使用`for-in`迭代JSON数据?

如何使用SwiftyJSON在Swift中使用`for-in`迭代JSON数据?,json,swift,swifty-json,Json,Swift,Swifty Json,我不熟悉Swift、JSON和SwiftyJSON。尝试读取json数据并输出它只是为了学习。下面的代码工作得很好。然而,我认为可以通过某种方式使用jsonData中的for(key,json);但是,我不能这样做。有什么建议吗 func loadLocationData() { if let path = NSBundle.mainBundle().pathForResource("cityList", ofType: "json") { do {

我不熟悉Swift、JSON和SwiftyJSON。尝试读取json数据并输出它只是为了学习。下面的代码工作得很好。然而,我认为可以通过某种方式使用jsonData中的
for(key,json);但是,我不能这样做。有什么建议吗

func loadLocationData() {

    if let path = NSBundle.mainBundle().pathForResource("cityList", ofType: "json") {
        do {
            let data = try NSData(contentsOfURL: NSURL(fileURLWithPath: path), options: NSDataReadingOptions.DataReadingMappedIfSafe)
            let json = JSON(data: data)
            if json != JSON.null {

                if let cityArray = json["country"]["city"].array {

                    for city in cityArray {
                        DLog("\(city["Name"])")

                        if let districtArray = city["district"].array {

                            for district in districtArray {
                                DLog("-- \(district["Name"])")

                                if let placeArray = district["place"].array {

                                    for place in placeArray {

                                        DLog("  --  \(place["Name"])")
                                    }
                                }
                            }
                        }
                    }
                }

            } else {
                print("could not get json from file, make sure that file contains valid json.")
            }
        } catch let error as NSError {
            print(error.localizedDescription)
        }
    } else {
        print("Invalid filename/path.")
    }
}

这不属于代码审查,因为它已损坏。代码审查只接受带有书面工作代码的问题。我们很乐意帮助你改进它一旦你让它工作。OP说代码工作-所以代码审查被打破了?只是在那边有点多管闲事,看起来还可以-有什么问题吗?如果你能让我知道。。所以我不会错派人去那里。干杯。代码被破坏了,所以在代码评审时它是离题的。我们有一个离题的原因,特别是代码损坏。代码审查没有什么问题。@DavidWilson“但是,我做不到。”听起来好像还没有达到预期效果。问题是解决代码中的一个特定“问题”,并相应地解决堆栈溢出的主题!这基本上是一个显示停止时,移动到代码审查。除此之外,代码的目标(至少对我来说)还不太清楚。OP提出了一个特定的问题,这个问题可能在CR得到回答,也可能得不到回答。我想说的是,这个问题在这里更好:)使用guard关键字将减少一些嵌套