2
當使用Alamofire框架時,我的響應似乎沒有得到正確解析。我得到的JSON響應有一些鍵看起來不是字符串,我不知道如何引用它們/獲取它們的值。在Swift中用Alamofire解析JSON響應
這裏是我的代碼的一部分,使呼叫:
var url = "http://api.sandbox.amadeus.com/v1.2/flights/low-fare-search"
var params = ["origin": "IST",
"destination":"BOS",
"departure_date":"2014-10-15",
"number_of_results": 1,
"apikey": KEY]
Alamofire.request(.GET, url, parameters: params)
.responseJSON { (_, _, json, _) in
println(json)
}
}
這裏是當該功能被稱爲
Optional({
currency = USD;
results = ({
fare = {
"price_per_adult" = {
tax = "245.43";
"total_fare" = "721.43";
};
restrictions = {
"change_penalties" = 1;
refundable = 0;
};
"total_price" = "721.43";
};
...
});
});
你會發現,results
不是第一款打印"results"
,但"price_per_adult"
是正確的格式。有沒有我失蹤的一些步驟?當我將它轉換爲NSDictionary時,它也不會做任何事情來幫助密鑰格式。
我也嘗試了相同的端點在JavaScript和紅寶石,並且都回來沒有問題,所以我相當確信它不是造成問題的API。
混亂了'NSLog' /'的println您可以通過手動創建類似於你從你的API請求取回的一個
Dictionary
,然後打印測試此'表示不正確JSON是我多次注意到的。我想知道如何去記錄或澄清這個... – mattt 2014-10-07 15:50:22(相關的,我最近看到有人對'NSData'的日誌輸出表示困惑,「爲什麼當我想要文本時得到數字?」是公平的,一個合理的問題) – mattt 2014-10-07 15:51:53
@mattt是的,我已經看到它相當多。我認爲這個問題的一部分是,在SO上搜索是一件困難的事情;也許一些更好的問題標題會有所幫助,但我想不到一個好的問題。我想知道是否在Alamofire的相關章節(和AFNetworking的)README.md中提供一個註釋來解決這個問題?我知道它與這些圖書館沒有任何關係,它會有點不合適,但它會給這個問題一些可見性,因爲這些圖書館非常流行(好的工作BTW;))。 – 2014-10-07 16:41:09