JavaScript中去除JSON字符串转义字符的两种方案

作者:木棉时间:2026-10-25 21:10:51浏览:635

本文介绍JavaScript中处理后端返回JSON数据时出现反斜杠转义字符的问题。通过正则表达式替换单个反斜杠,以及在Ajax请求中明确指定dataType为json,可有效解决控制台打印或DOM插入时出现的多余转义符,确保数据格式正确。

解决JavaScript中JSON字符串包含多余转义字符反斜杠的问题。

JavaScript中打印输出的示例情况。

执行相关操作。

使用console.log(JSON.stringify(d).toString())输出,结果如下:

{"businessNumber":"HT-2019001","filesInfo":"[{\"fileName\":\"test.jpg\",\"groupName\":\"group1\",\"fdfsId\":\"M00/00/00/rBMBBERDSsGAWFZFAAEe88kVsg8661.jpg\"},{\"fileName\":\"test02.sql\",\"groupName\":\"group1\",\"fdfsId\":\"M00/00/00/rBMAA12ENqmAERVQAAAfFFZ78oA526.sql\"}]"}

使用console.log(JSON.stringify(d).toString().replace(new RegExp("\\\\\"","gm"),"\""))进行替换,结果如下:

{"businessNumber":"HT-2019001","filesInfo":"[{"fileName":"test.jpg","groupName":"group1","fdfsId":"M00/00/00/rBMBBERDSsGAWFZFAAEe88kVsg8661.jpg"},{"fileName":"test02.sql","groupName":"group1","fdfsId":"M00/00/00/rBMAA12ENqmAERVQAAAfFFZ78oA526.sql"}]"}

结论:当JavaScript中的JSON字符串包含单个反斜杠\时,正则替换需使用\\\\。

从控制层返回到JavaScript的JSON数据带有“\”转义符,如何去除。

应用场景。

编写了一个Ajax请求,调用指定URL后,从控制层返回的数据格式为JSON。

Ajax请求的内容包含注释说明:

$.ajax({
                url : '${base}/commonDialog/applyCis5ZZCAntiReport?appNo=${(appNo)!}'+'&loanType='+loanType+
                          '&loanAmount='+loanAmount+'&loanPurpose='+loanPurpose+'&loanTerm='+loanTerm+
                          '&custName='+custName+'&mobile='+mobile+'&idNo='+idNo,
                type : "post",
               
                success:function(res){<#--url调用结束后,返回的数据在res中-->
                    $("#result").empty();<#--result是一个div的id。可不用考虑-->
                    var json="";
                    json=JSON.stringify(res,null, 4);<#--这里小编也不懂啥意思,应该是json转var格式吧!-->
                    $("#result").append(json);<#--把返回的结果追加到div中,此时追加的内容就是满屏的转译符"\">
                }
            })
        });

尝试多种方法均未彻底解决,最常见的是使用replace替换,最接近预期结果是在上述success方法中添加:

var json=res.replace("\\","");
$("#result").append(json);

该方法确实去除了部分转义符"\"。但在处理层级复杂的JSON字符串时,仍可能存在遗漏,因为这并未从根本原因入手解决。

JavaScript原生支持JSON格式。若从后台传输到前端未指定数据格式,默认视为字符串,将JSON格式数据通过toString()打印至控制台时会带有"\"。

因此,只需在Ajax请求中明确指定返回数据的格式即可!添加“dataType:json”参数。

type:"post"
 dataType:"json",

以上为个人经验分享,希望能提供参考,也希望大家多多支持本站。

作者最新文章