我在使用Swift 5进行解析时遇到了理论上的问题。试想一下,我们有一个服务器返回JSON字符串。像这样:
{"user":{"englishName":"Alex","russianName":"Алёша"}}
我们可以看到,用户具有名称,该名称用英语和俄语编写。如果我想通过JSONSerialization解析此JSON,则会收到包含unicode的对象:
{
user = {
englishName = Alex;
russianName = "\U0410\U043b\U0451\U0448\U0430";
};
}
看看我的代码:
import Foundation
let string = "{\"user\":{\"englishName\":\"Alex\",\"russianName\":\"Алёша\"}}"
let data = string.data(using: .utf8)!
let json = try! JSONSerialization.jsonObject(with: data, options: .allowFragments)
print(json)
所以,问题是:如何强制JSONSerialization.jsonObject在不使用Unicode的情况下给出结果?
P。 S.我知道以后我可以将解析结果转换为String,而Unicode将消失,像这样:
if let json = json as? [String: Any] {
if let user = json["user"] as? [String: String] {
print(user)
}
}
结果将为:["englishName": "Alex", "russianName": "Алёша"]