中的字典,我編寫了一個小程序將MySql數據從網頁傳輸到iPhone。在服務器端。我編寫了PHP腳本來獲取腳本以返回json數據。作爲一種編碼練習,將JSON字符串轉換爲Swift 3
在Xcode中我有
[code]
.
.
.
let jsonString = try? JSONSerialization.jsonObject(with: data!, options: [])
print(jsonString!)
.
.
.
[/code]
在Xcode的控制檯,我有這樣的:
[code]
(
{
Address = "1 Infinite Loop Cupertino, CA";
Latitude = "37.331741";
Longitude = "-122";
Name = Apple;
}
)
[/code]
I have a function
[code]
func convertToDictionary(text: String) -> [String: Any]? {
if let data = text.data(using: .utf8) {
do {
return try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
} catch {
print(error.localizedDescription)
}
}
return nil
}
[/code]
當我通過jsonString到convertToDictionary(文字:)
[code]
let dict = convertToDictionary(text: jsonString as! String)
[/code]
在控制檯我得到一個錯誤「無法將'__NSSingleObjectArrayI'(0x10369bdb0)類型的值轉換爲'NSString'(0x1004eac60)」。
但如果我硬編碼的JSON字符串,然後將它傳遞給convertToDictionary(文字:)
[code]
let hardCodedStr = "{\"Address\":\"1 Infinite Loop Cupertino, CA\",\"Latitude\":\"37.331741\",\"Longitude\":\"-122\",\"Name\":\"Apple\"}"
let dict = convertToDictionary(text: hardCodedStr)
print(dict!)
[/code]
它工作得很好。這是爲什麼?謝謝
這不是你應該如何使用[this](https://stackoverflow.com/a/30480777/2227743)。這個函數只是一個將JSON字符串轉換爲字典的便捷方式,如果只有字符串可以與*一起使用。但這不是你的情況:你有JSON *數據*。您應該將* data *轉換爲字典 - 完全忘記字符串。 – Moritz
變量'jsonString'已經是一個從JSON字符串轉換而來的字典。 – vadian