JSON中传单个反斜杠需写为\,因JSON规范要求反斜杠必须转义;Postman中应使用JSON.stringify()生成而非手动拼接,且需确认Content-Type为application/json并抓包验证原始字节。

Postman 里 JSON 字段中想原样传一个反斜杠 ,不是让它被当成转义符,也不是让它消失,而是让后端收到的就是单个 字符——这事儿不能靠“多打几个反斜杠”硬凑,得按 JSON 规范来。
JSON 字符串里写反斜杠,必须写成 \
因为 JSON 标准(RFC 8259)规定:反斜杠是转义字符,任何出现在字符串中的 都必须成对出现,否则解析直接失败。你看到的错误比如 Unexpected token in JSON at position X,基本就是这里漏了第二个反斜杠。
- 想传一个字面量反斜杠(比如 Windows 路径
C: empile.txt),原始字符串必须写成"C:\temp\file.txt" - Postman 的
Body → raw → JSON模式会校验语法,输完按 Ctrl+S 或切换 Tab,它会立刻标红不合法的 - 别信“粘贴进去自动处理”——如果源文本是
C: emp,直接粘贴进 Postman 的 raw 编辑框,它不会帮你补第二个反斜杠,反而会报错
Postman 预请求脚本里拼 JSON,要用 JSON.stringify() 而不是手拼
如果你在 Pre-request Script 里动态构造 JSON 字符串(比如把变量注入到 biz_content 字段),千万别用字符串拼接加 来“模拟”转义。
Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。
- 手拼容易漏、多、错位,比如写成
'{"path": "C:\\temp"}'看似稳妥,但实际 JS 字符串解析时已吞掉一层,最终 JSON 里只剩一个 - 正确做法是先构造 JS 对象,再用
JSON.stringify()序列化:const data = { path: "C:\temp" }; pm.request.body.raw = JSON.stringify({ biz_content: data }); - 注意:旧版 Postman 不支持
pm.语法?那就用postman.setEnvironmentVariable()+ 模板变量,或改用eval()+ 安全的字符串模板(不推荐),但优先升级 Postman
后端收不到预期的反斜杠?先查 Content-Type 和原始字节
即使 JSON 写对了,后端也可能拿到空值、乱码或报错——问题常不在 Postman,而在传输链路或解析逻辑。
- 确认 Postman 的
Headers里Content-Type是application/json,不是text/plain或留空 - 后端不要直接读
req.Body流再手动 parse;Go 里要io.ReadAll缓存一次再解码,Java 里 Spring Boot 默认用@RequestBody就行,别自己getInputStream() - 最稳的验证方式:用 Wireshark 或
curl -v抓包,看 HTTP 请求体里真实发送的是"path":"C:\temp"还是"path":"C: emp"
真正容易被忽略的点:反斜杠问题从来不是孤立的。它往往和换行符
、双引号 "、Unicode 字符混在一起爆发。只要 JSON 字符串里有任意一个未转义的控制字符,整个 payload 就会解析失败——所以别只盯着 改,用 JSON.stringify() 生成、用 Postman 自带的 JSON 格式校验、用抓包看原始字节,三者缺一不可。

















