在 SwiftyJSON 中正确循环和检索值

Correctly loop and retrieve value in SwiftyJSON

我正在尝试找到一种正确的方法来循环和检索 SwiftyJSON 中的值。 请参阅下面代码中的注释。

audioReq.executeWithResultBlock({
            response in
            let json = JSON(response.json)
            for (key, subJson) in json {
                if let title = subJson[key].string {   //<-- Loop does not work! 
                    println(title)                    //     It prints nothing!
                }
            }

            if let title = json[0]["first_name"].string {
                println(title)                                  //<-- Works
            }
            if let title = json[0]["last_name"].string {
                println(title)                                 //<-- Works
            }
            if let title = json[0][1].string {
                println(title)                        //<-- Does not work!
            }                                         //  Prints nothing!

            if let title = json[0]["id"].string {
                println(title)                        //<-- Does not work!
            }                                         //  Prints nothing!
            println(response.json)
                                   },
            errorBlock: {(error:NSError!) -> Void in
                println(error.localizedDescription)
        })

response.json 的内容:

(
        {
        "first_name" = "Dachnik";
        id = 12345678;               // should be  "id" = 12345678
        "last_name" = "Neudachnik";
    }
)

您正在使用数组而不是字典。应该起作用的是

for (key, subJson) in json[0] {
    if let title = subJson[key].string {   //<-- Loop does not work! 
        println(title)                    //     It prints nothing!
    }
}

如果你有多个用户,那么你应该做类似的事情(这里没有 MAC)

for dict in json {
    // go through dictionary elements here: first_name, last_name, id
    // you can use same for loop as above
}