我怎樣才能將Any
類型的數據從JSONSerialization
轉換爲字典數組?我的代碼是:'任何'不可轉換爲'[[String:Any]]'
let jsonArray: [[AnyHashable: Any]]
do {
jsonArray = try JSONSerialization.jsonObject(with: jsonData, options: [.ReadingOptions.allowFragments]) as! [[AnyHashable : Any]]
}
catch {
let description = NSLocalizedString("Could not analyze earthquake data", comment: "Failed to unpack JSON")
print(description)
return
}
但是編譯器給我的錯誤信息:
'任何' 是無法轉換爲 '[[AnyHashable:任何]'
附:
我需要解析字典的數組,因此JSON文件看起來像這樣:
[{
"username": "admin",
"password": "123"
}, {
"username": "bbvb",
"password": "3333"
}, {
"username": "asd",
"password": "222"
}]
不要使用武力鑄造,因爲JSON數據可能會損壞或不正確,使用可選的澆鑄用''作爲運營商?另外,根據JSON規範,JSON鍵必須是'String's,所以沒有理由使用'AnyHashable'作爲你的字典鍵。但是,如果沒有看到實際的'JSON'響應,我們無法提供確切的幫助,很可能您沒有收到預期的JSON格式。 –
@DávidPásztor我用JSOn例子更新了帖子。將'AnyHashable'改爲'String'並沒有解決任何問題。如果數據被破壞,'do catch'將會捕獲它,所以不需要使用可選項。 – Shmidt
這是不正確的。 do-catch塊只捕獲可拋出的錯誤,但強制轉換不能被捕獲。如果數據無法解碼爲JSON,則do-catch塊只會捕獲錯誤,但它是JSON並不意味着它的格式也正確。 –