Swift - Alamofire - 解析 JSON

Posted

技术标签:

【中文标题】Swift - Alamofire - 解析 JSON【英文标题】:Swift - Alamofire - Parsing JSON 【发布时间】:2015-04-13 17:29:25 【问题描述】:

我目前正在开发一个应用程序,我使用 Alamofire 从 Web 服务检索 JSON。

JSON 看起来像这样 (http://258labs.be/others/getly-webservice/getuserslocations.php):

    [
        
            "first_name":"Ludo",
            "latitude":"50.8212662023034",
            "longitude":"4.36678815633465"
        ,
            "first_name":"Maxime",
            "latitude":"50.8214004366864",
            "longitude":"4.36678370989307"
        
    ]

我在网上看过很多用 Swift 解析 JSON 的帖子,不管有没有 Alamofire。而且我从未见过没有标题的 JSON 直接以一堆元组开头。所以我不知道如何解析它

这是我的 Alamofire 代码:

// Get informations from others users

Alamofire.request(.GET, "http://258labs.be/others/getly-webservice/getuserslocations.php").responseJSON() 
    (_, _, data, _) in
    println(data)

    for item in data! as [String: AnyObject] 
        println(item["first_name"])
    

你能告诉我处理这个 JSON 的方法吗?

提前致谢,抱歉如果是转帖,我尝试阅读大部分帖子,但没有一个看起来像这样。

【问题讨论】:

您是否遇到任何错误? 【参考方案1】:

看看 SwiftyJSON。它与 Alamofire 搭配得很好

https://github.com/SwiftyJSON/SwiftyJSON

这是我的一种测试方法中的一些代码。

Alamofire.request(.GET, URL)
        .responseJSON  (request, response, json, error) in
            var json = JSON(json!)
            println(json["flights"][0])

            expectation.fulfill()

    

JSON(json) 调用正在使用 SwiftyJSON 解析数据

所以在您的情况下,您可能需要类似:json["first_name"].string

【讨论】:

【参考方案2】:

您的data 是一个字典数组。

  Alamofire.request(.GET, "http://258labs.be/others/getly-webservice/getuserslocations.php").responseJSON() 
    (_, _, data, _) in
    println(data)

    if let decoded = data as? [[String: AnyObject]] 
      for dic in decoded 
        println(dic["first_name"])
      
    

  

【讨论】:

以上是关于Swift - Alamofire - 解析 JSON的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中将 Alamofire 结果解析为对象(使用:Alamofire、SwiftyJSON 和 ObjectMapper)

需要帮助使用 Alamofire 使用 Swift 解析 JSON

Swift - Alamofire源码解析

Swift - Alamofire源码解析

Swift - Alamofire源码解析

Swift - Alamofire源码解析