我尝试使用我的代码读取下面的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)
})
})
}
答案 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
希望这就是你所需要的。