You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何移除字符串数组内的反斜杠转义字符

问题解析与解决方案

为什么打印数组时会出现反斜杠?

你看到的反斜杠并不是字符串实际内容的一部分,只是Swift调试输出的格式而已。当你直接print(tempArray)时,调用的是数组的description方法——这个方法是给开发者看的调试信息,会把字符串里的特殊字符(比如单引号)用转义符标出来,方便你一眼识别字符串中的特殊符号。但单独打印数组元素时,调用的是字符串自身的description,会直接显示原始内容,所以你看到的是test's而不是带反斜杠的版本。

简单说:你的数组里的字符串test's本身完全正常,没有反斜杠,只是调试打印数组时的显示效果让你误以为有。

如何生成合法的JSON字符串存入SQLite?

你不需要手动去“移除”不存在的反斜杠,问题出在你可能打算直接用数组的description作为JSON字符串——这是错误的,因为description只是调试用的格式,不是标准JSON。正确的做法是用Swift自带的序列化工具来生成标准JSON:

方法1:使用Codable(推荐,更简洁)

import Foundation

var tempArray = ["test", "one", "test's", "right"]

// 序列化数组为JSON数据
do {
    let jsonData = try JSONEncoder().encode(tempArray)
    // 转为字符串
    if let jsonString = String(data: jsonData, encoding: .utf8) {
        print(jsonString) // 输出: ["test","one","test's","right"]
        // 现在可以把jsonString存入SQLite了
    }
} catch {
    print("JSON序列化失败: \(error)")
}

方法2:使用JSONSerialization

import Foundation

var tempArray = ["test", "one", "test's", "right"]

do {
    let jsonData = try JSONSerialization.data(withJSONObject: tempArray, options: [])
    if let jsonString = String(data: jsonData, encoding: .utf8) {
        print(jsonString) // 输出标准JSON格式
    }
} catch {
    print("JSON序列化失败: \(error)")
}

这两种方法生成的都是符合JSON规范的字符串,里面的test's会被正确处理,不会出现多余的反斜杠,完全可以直接存入SQLite数据库。


内容的提问来源于stack exchange,提问作者HappyAppy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 23:45:39