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

Kotlin中如何对要放入JSON字符串的字符串进行转义?

Kotlin中处理JSON字符串转义的方案

Kotlin标准库本身并没有提供专门用于JSON字符串转义的内置函数,但有两种可靠的方式解决你遇到的问题:

1. 使用官方推荐的JSON序列化库(首选)

最稳妥的方式是借助Kotlin官方的kotlinx.serialization库,它会自动处理所有JSON规范要求的字符转义,完全避免手动转义的出错风险。

示例代码:

import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json

// 定义需要序列化的数据类
@Serializable
data class Post(val title: String, val content: String)

fun main() {
    // 包含特殊字符的字符串
    val post = Post("Hello \"World\"", "Line 1\nLine 2\tWith tab")
    // 自动生成合法的JSON字符串
    val validJson = Json.encodeToString(post)
    println(validJson)
    // 输出:{"title":"Hello \"World\"","content":"Line 1\nLine 2\tWith tab"}
}

这个库会自动处理双引号、换行符、制表符等所有需要转义的字符,确保生成的JSON格式完全有效。

2. 手动实现转义函数(不推荐)

如果不想引入第三方库,可以自己实现一个字符串扩展函数来处理JSON转义,但需要覆盖所有JSON规范要求的转义场景:

fun String.escapeForJson(): String {
    return this.replace("\\", "\\\\")
        .replace("\"", "\\\"")
        .replace("\n", "\\n")
        .replace("\r", "\\r")
        .replace("\t", "\\t")
        .replace("\b", "\\b")
        .replace("\f", "\\f")
}

注意:手动实现容易遗漏Unicode控制字符等边缘场景,长期维护风险高,仅建议在简单场景下临时使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 16:22:06