问题与JSON和Swift - \ u00c3 \u00a9é而不是é

时间:2017-04-07 15:10:32

标签: json swift

我正在尝试在我的iOS应用上显示一些JSON数据,但我遇到使用Swift正确显示它的问题。

当我使用正常JSONSerializer来获取é时,我想要显示é。我不明白是否使用UTF-16而不是UTF-8或其他什么问题?

有没有人有任何建议我如何根据从API收到的JSON直接转换为é在Swift中。

2 个答案:

答案 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)
}
}