JSON带有不标准的Unicode表情符号\uD83E导致解析失败
使用NSMutableString将其转换为可变字符串以便后续修改。接下来,我们使用CFStringTransform函数进行转义处理,将字符串中的特殊字符转换为Java的Unicode转义格式。
let jsonStr = "{\"code\":1,\"message\":\"成功\",\"data\":[{\"highKeyword\":\"大家好我是<span style=\\\"color:#357CFF\\\">xx</span><span style=\\\"color:#357CFF\\\">xx</span>朱朱老师\\uD83E\",\"keyword\":\"大家好我是xx朱朱老师\\uD83E\"}]}"
let mutableStr = NSMutableString(string: jsonStr) as CFMutableString
CFStringTransform(mutableStr, nil, "Any-Hex/Java" as CFString, true)
let str = mutableStr as String
if let data = str.data(using: .utf8) {
do {
let json = try JSONSerialization.jsonObject(with: data, options: [])
printLog("data",json)
// 在这里处理转换后的 JSON 对象
} catch {
print("Error parsing JSON: \(error.localizedDescription)")
}
}