JSON带有不标准的Unicode表情符号导致解析失败

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)")
               }
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值