SwiftyJSON读取JSON数组问题

时间:2015-06-23 10:04:52

标签: json swift swifty-json

我尝试使用我的代码读取下面的json数组数据,但是我可以在打印整个数据的同时获得空结果。请问我的问题在哪里?

我已经阅读过这个主题,但我无法得到结果。 Topic Link

{"Cars":[{"Brand":"Alfa Romeo"},{"Brand":"Audi"},{"Brand":"BMW"},{"Brand":"Citroen"},{"Brand":"Dacia"},{"Brand":"Fiat"},..........

我的代码

    func getData(){

    var url = "http://test.net/services/test.php"
    var request = HTTPTask()
    request.GET(url, parameters: nil, completionHandler:
        {
            (response:HTTPResponse) in

            var jsonData = response.responseObject as! NSData
            var json = JSON(data: jsonData)

            println("All data \(json)")

            dispatch_async(dispatch_get_main_queue(),
                {
                    println(json["Cars"]["Brand"].stringValue)
            })
    })
}

2 个答案:

答案 0 :(得分:2)

json["Cars"]是一个数组,例如通过SwiftyJSON获取第一个项目:

println(json["Cars"][0]["Brand"].stringValue)

在JSON字符串中,{}是字典的分隔符,而[]是数组的分隔符。

修改

根据你的评论,是的,你可以遍历数组:

if let cars = json["Cars"].array {
    for car in cars {
        println(car["Brand"])
    }
}

答案 1 :(得分:0)

这样您就可以使用SwiftyJSON获取json对象:

//Get your Data First
let json = JSON(data: data)

//Store your values from car key into Car object so we can get total count.
let Cars = json["Cars"].arrayValue

//Use For loop to get your car Brand 
for i in 0..<Cars.count
{
    println(json["Cars"][i]["Brand"].stringValue)
}

您的输出将是:

Alfa Romeo
Audi
BMW
Citroen
Dacia
Fiat

希望这就是你所需要的。