我正在尝试在我的iOS应用上显示一些JSON数据,但我遇到使用Swift正确显示它的问题。
当我使用正常JSONSerializer
来获取é时,我想要显示é。我不明白是否使用UTF-16而不是UTF-8或其他什么问题?
有没有人有任何建议我如何根据从API收到的JSON直接转换为é在Swift中。
答案 0 :(得分:0)
不确定您使用的是哪种编码,但此代码适用于.utf8
和.utf16
:
let jsonString = "{\"foo\": \"áéíóú\"}"
let data = jsonString.data(using: .utf16)!
do {
let object = try JSONSerialization.jsonObject(with: data, options: [])
if let dict = object as? [AnyHashable: Any], let text = dict["foo"] as? String {
print("Extracted text: \(text)")
}
}
catch let e {
// TODO: Handle error
print("Error processing JSON: \(e)")
}
答案 1 :(得分:0)
是同样的问题。必要时使用此代码,它将起作用:
Alamofire.request(url, method: .get, parameters: params)
.responseJSON{ response in
guard let data = response.data else {return}
do {
let jsonResult = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as! NSDictionary
let json = jsonResult["response_goods"] as! [[String:String]]
print(json) } catch let err as NSError {print(err)
}
}