2016-11-08 177 views
0

我想從JSON字符串轉換爲NSDictionary和數據是UTF8。 這是我的代碼:轉換JSON字符串UTF8爲NSDictionary Swift

override func viewDidLoad() { 
    super.viewDidLoad() 
    let string = "{\"name\":\"Việt NAM\",\"data\":{\"capital\":\"HÀ NỘI\",\"continents\":\"Châu Á\"}}" 
    let dataResult = convertStringToDictionary(text: string) 
    print (dataResult) 
} 



func convertStringToDictionary(text: String) -> [String:AnyObject]? { 
    if let data = text.data(using: String.Encoding.utf8) { 
     do { 
      return try JSONSerialization.jsonObject(with: data, options: []) as? [String:AnyObject] 
     } catch let error as NSError { 
      print(error) 
     } 
    } 
    return nil 
} 

和數據打印:

Optional(["name": Việt NAM, "data": { 
capital = "H\U00c0 N\U1ed8I"; 
continents = "Ch\U00e2u \U00c1";}]) 

數據在AnyObject不是UTF8。

+0

試試[字符串:任何]轉換數據 –

+2

沒有問題,那就是現在字典被打印。如果你訪問實際的字典值,那麼一切都會如預期的那樣。 –

回答

0

發生此問題的原因是您嘗試直接打印字典的數據,而不是直接訪問它的key/value首先嚐試打印所有字典鍵以獲取並查看所有鍵。

print(parseJSON.allKeys) 

它可以讓你如這些鍵:[name,data]

那麼你可以打印任何鍵值你喜歡:

print("Name: \(parseJSON.value(forKey: "name") as! String)")