2014-09-29 125 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