使用 SwiftyJSON 处理 JSON 响应
Posted
技术标签:
【中文标题】使用 SwiftyJSON 处理 JSON 响应【英文标题】:handle JSON response with SwiftyJSON 【发布时间】:2014-09-29 17:39:15 【问题描述】:我尝试了很长时间,但我不知道如何解析响应。这是我的代码:
var jsonString:String = ""
Alamofire
.request(.GET, url + "/HMServer/rest/administration/version")
.responseJSON
(request, response, data, error) -> Void in
let json = JSON(object: data!)
//here I want to do something with parsing
我使用 Alamofire 执行的请求并返回 JSON 响应。响应如下:
[message: [SERVER_VERSION: 0.1, INTERFACE_VERSION: 0.1], type: success]
我想将所有元素保存在字符串中并返回。如何解析保存在 let let json
中的 JSON 响应?我尝试使用Alamofire-SwiftJSON,但代码不起作用。我发现的所有示例都太旧了,因为几天前 SwiftyJSON 代码被重构了。
谢谢!
【问题讨论】:
为什么不使用 NSJSONSerilization?这要容易得多,并得到 Apple 的支持。 对我来说,代码不像 alamofire 和 swiftyjson 那样简单。你有一个简单的例子还是你知道一个好的教程? 我会给你一个例子,但首先要问一个问题:你显示的响应是在服务器响应之上还是解析版本之上? 这是来自alamofire的响应数据。如果我在上面的代码中执行 println(json),那么我会得到发布的响应。 【参考方案1】:我已经解决了Alamofire-SwiftJSON 的问题, 但是您可以在 responseJSON 的闭包中自己完成,例如:
Alamofire.request(.GET, url + "/HMServer/rest/administration/version")
.responseJSON (request, response, data, error) -> Void in
if error != nil
self.swiftyJSON = SwiftyJSON.JSON.Null(error)
else if object != nil
self.swiftyJSON = SwiftyJSON.JSON(object: object!)
else
self.swiftyJSON = SwiftyJSON.JSON.Null(nil)
以上代码不像Alamofire-SwiftJSON在全局队列中,初始化(AnyObject to SwiftyJSON)在主队列中运行。
【讨论】:
self.swiftyJSON
是什么类型的?
我解决了这个问题。现在在我的函数中,我返回整个 JSON 枚举。后来我像jsonReturn["message"]["HMSERVER_VERSION"].stringValue
一样解析它。它为我运行 :)以上是关于使用 SwiftyJSON 处理 JSON 响应的主要内容,如果未能解决你的问题,请参考以下文章