转换JSON字符串UTF8为NSDictionary Swift
问题描述:
我想从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。
答
发生此问题的原因是您尝试直接打印字典的数据,而不是直接访问它的key/value
首先尝试打印所有字典键以获取并查看所有键。
print(parseJSON.allKeys)
它可以让你如这些键:[name,data]
那么你可以打印任何键值你喜欢:
print("Name: \(parseJSON.value(forKey: "name") as! String)")
试试[字符串:任何]转换数据 –
没有问题,那就是现在字典被打印。如果你访问实际的字典值,那么一切都会如预期的那样。 –