Postman自动删除响应反斜杠,如何保留双反斜杠?
Postman保存变量时双反斜杠丢失的解决办法
这问题本质是JSON的转义机制导致的:响应里的双反斜杠\\是JSON用来表示单个实际反斜杠的转义写法,当你用pm.response.json()解析响应时,Postman会自动把\\转换成\,所以直接存解析后的值到变量,自然就只剩一个反斜杠了。
给你两种解决思路:
1. 直接提取原始响应文本中的内容
跳过JSON解析,直接拿原始响应字符串,用正则或者字符串截取提取目标字段,这样能保留原始的双反斜杠。示例代码:
// 获取原始响应文本 const rawResponse = pm.response.text(); // 用正则匹配目标字段(假设字段名为path) const matchResult = rawResponse.match(/"path": "(.*?)"/); if (matchResult) { // 提取到的内容就是带双反斜杠的原始值 pm.globals.set("targetVar", matchResult[1]); }
2. 手动转义单反斜杠成双反斜杠
如果还是想用JSON解析后的字段,那就把解析得到的单反斜杠再转成双反斜杠后保存。示例代码:
// 解析JSON拿到带单反斜杠的值 const parsedValue = pm.response.json().path; // 全局替换,把所有单反斜杠转成双反斜杠 const escapedValue = parsedValue.replace(/\\/g, "\\\\"); // 保存到全局变量 pm.globals.set("targetVar", escapedValue);
执行后可以用pm.globals.get("targetVar")查看结果,就能看到双反斜杠被保留下来了。
内容的提问来源于stack exchange,提问作者Leo1989
相关产品推荐
相关产品推荐

