2014-09-29 127 views
1

我用了很长时间来处理SwiftyJSON的JSON响应,但我不知道如何解析响应。这里是我的代码:用SwiftyJSON处理JSON响应

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代码被重构了。

THX!

+2

为什么不使用NSJSONSerilization?这很容易,并得到Apple的支持。 – idmean 2014-09-29 17:41:05

+0

对我来说代码并不像alamofire和swiftyjson那么简单。你有一个简单的例子,或者你知道一个很好的教程吗? – Martin 2014-09-29 19:03:20

+0

我会给你一个例子,但首先提出一个问题:你在服务器或解析版本的响应之上显示的响应是? – idmean 2014-09-29 19:08:35

回答

0

我有固定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到SwiftyJSON)正在主队列中运行。

+0

什么是'self.swiftyJSON'类型? – Martin 2014-09-30 06:54:22

+0

我解决了这个问题。在我的函数中,现在我返回整个JSON枚举。后来我将它解析为'jsonReturn [“message”] [“HMSERVER_VERSION”]。stringValue'。它为我运行:) – Martin 2014-09-30 07:11:01