我想从JSON字符串转换为NSDictionary,数据是UTF8。 这是我的代码:
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 :(得分:0)
出现此问题是因为您尝试直接打印字典数据而不是访问其key/value
首先尝试打印所有字典键以获取并查看所有密钥。
print(parseJSON.allKeys)
它为您提供了以下这些键:[name,data]
然后您可以打印任何您喜欢的关键值:
print("Name: \(parseJSON.value(forKey: "name") as! String)")