2015-06-23 94 views
0

我想用我的代碼閱讀下面的json數組數據,但我得到空結果所有的時間,而我可以打印整個數據。請問哪裏是我的問題?SwiftyJSON閱讀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) 
      }) 
    }) 
} 

回答

1

json["Cars"]是一個數組,因此,例如通過SwiftyJSON得到的第一項:

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

在JSON字符串,{}是分隔符rs代表字典,而[]是數組的分隔符。

編輯:

按照您的評論,是的,你可以循環陣列上:

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

它正在工作。我想我必須把它放在for循環才能獲得所有的值。 – CAN

+0

是的。我已經更新了我的答案。 – Moritz

0

這樣你可以得到你的JSON對象使用SwiftyJSON

//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 

希望這是你所需要的。