首页 / 教程 / JSON 转义

JSON 转义与去转义详解:反斜杠到底什么时候需要

JSON 转义的本质是让特殊字符可以安全地出现在字符串中。最容易混淆的地方在于:你看到的反斜杠可能是 JSON 语法的一部分,也可能是一个 JSON 字符串里面保存的另一段 JSON。

必须转义的字符

JSON 字符串内部的双引号和反斜杠必须转义,换行、回车、制表符等控制字符也要用转义形式表达。

{
  "quote": "He said \"hello\"",
  "path": "C:\\temp\\demo.json",
  "lines": "line one\nline two"
}

什么是二次转义

当一段 JSON 被作为另一个 JSON 字段的字符串值传递时,内层 JSON 的引号和反斜杠需要再次转义。

{
  "payload": "{\"name\":\"张三\",\"role\":\"developer\"}"
}

这里 payload 的值不是对象,而是一段字符串。接收方通常需要先解析外层 JSON,再把 payload 字符串作为 JSON 再解析一次。

什么时候需要去转义

如果你从日志、数据库 varchar 字段或消息队列中拿到一段布满 \" 的内容,而且它整体被双引号包裹,那通常需要去转义。去转义后才能看到原本的对象结构。

什么时候不要手动转义

如果你正在代码里发送 HTTP 请求,通常不应该手动拼接反斜杠,而应该把对象交给语言内置 JSON 序列化函数,例如 JavaScript 的 JSON.stringify()、Python 的 json.dumps()。手动拼接最容易遗漏边界字符。

可以使用 JSON工具箱 的“转义”和“去转义”功能快速判断当前文本属于哪一种情况。

相关教程