2015-01-04 60 views
0

我使用HTTPTask從openweathermap.org加載數據。哪個工作正常。我無法將數據轉換爲JSON。我想使用SwiftyJSON,但是我無法弄清楚如何將兩者聯繫起來。HTTPTask響應到Swifty JSON序列化

HTTPTask有一個JSON序列化程序,我工作,但我寧願使用Swifty,它似乎更容易合作。

這是我到目前爲止。這會從openweathermap.org加載天氣。我不知道如何將響應傳遞給Swifty。

var request = HTTPTask() 
request.requestSerializer = JSONRequestSerializer() 
request.responseSerializer = JSONResponseSerializer() 

request.GET(openWeatherURL, parameters: ["q":"San Francisco", "APPID":openWeatherAPIKey], success: {(response: HTTPResponse) in 
    if let dict = response.responseObject as? Dictionary<String, AnyObject> { 
     println("Response: \(response)") 
     println("Dictionary: \(dict)") 
     let description = dict["weather"]["description"] 
     println(description) 
       } 
}, failure: {(error: NSError, repsonse: HTTPResponse?) in 
    println("error \(error)") 
}) 
+0

我還沒有使用HTTPTask,但它似乎可以編寫自己的請求序列化程序,實現.GET等與SwiftyJSON做legwork。 這就是說,給你兩個想法:1)問問自己爲什麼你甚至想要這樣做;你已經有了一個本地的快速字典,很少費力。 2)如果你不喜歡使用Dictionary,SwiftyJSON會很樂意包裝它:'JSON(dict)'。 – clozach

+0

感謝您的回覆,我認爲這正是我正在尋找的答案。我沒有意識到我可以將字典傳遞給Swifty JSON()。 –

+0

哦,在那種情況下,我會繼續並將其作爲正確的答案提交,以便標記它,以防萬一它可能幫助其他人。 :) – clozach

回答

0

SwiftyJSON非常樂意接受包括Dictionary?在內的各種對象,所以只是爲了它!

let dict = JSON(response.responseObject) 
+0

我沒有意識到這一點。奇蹟般有效! –