【问题标题】:SwiftyJSON Reading JSON Array issueSwiftyJSON 读取 JSON 数组问题
【发布时间】:2015-06-23 10:04:52
【问题描述】:

我正在尝试使用我的代码读取如下所示的 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)
            })
    })
}

【问题讨论】:

    标签: json swift swifty-json


    【解决方案1】:

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

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

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

    编辑:

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

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

    【讨论】:

    • 它现在正在工作。我想我必须将它放入 for 循环中才能获取所有值。
    【解决方案2】:

    这样你就可以使用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
    

    希望这是你需要的。

    【讨论】:

      猜你喜欢
      • 2020-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多