我想處理一個JSON字符串,該字符串作爲來自使用Alamofire進行的HTTP調用的數據返回。Alamofire in Swift:轉換可用JSON字典中的響應數據
但是我想去一點點「低級別」,並瞭解如何將響應對象轉換成字典。
推理是,它認爲字典可能是訪問響應中的JSON值的簡單/方便的方式(而不必經歷將響應轉換爲JSON對象的過程)。
這是假設JSON對象和字典是一回事下(是誰?)。
下面是我寫的樣本函數:
func question() -> Void{
let response : DataRequest = Alamofire.request("http://aapiurl", parameters: nil)
// Working with JSON Apple developer guide:
// https://developer.apple.com/swift/blog/?id=37
response.responseJSON { response in
if let JSON = response.result.value
{
print("JSON: \(JSON)") // Works!
let data = JSON as! NSMutableDictionary
// Casting fails
// Could not cast value of type '__NSCFArray' (0x19f952150) to 'NSMutableDictionary' (0x19f9523f8).
print("Data: \(data)")
}
}
}
編輯:
JSON對象似乎是類型上的所有的,沒有任何的被提議的方法下面的答案。
我曾嘗試將其轉換爲一個字典,並得到下面的錯誤:
這裏'數據'是'NSArray'類型。你可以試試'let data = JSON as! NSArray'。 –
Mhh ...是的有意義。我可以迭代數組並將其轉換爲Dictionary(http:// stackoverflow。COM /問題/ 31446960 /轉換,迅速陣列到字典用的索引)。這是最佳做法嗎?你通常做什麼? – mm24
就像JSON.mutablearray(「key」)一樣! NSMutableDictionary –