ajax获取json部分字符被转义导致解析失败的简单处理办法

ajax获取json部分字符被转义的简单处理办法

      如题,处理的方法非常简单,就是将转义后字符替换回去。字符的转义前和转义后的对照表可以去网上查一下,这里列出几个经常会用的:

字符转义字符
"
空格 
&&
<&lt;
>&gt;

      知道字符转义的前后对照,下面就可以进行替换工作了,替换使用js中的自带方法 replace:

//使用格式
str.replace(正则表达式或字符串, 替换的内容);  //返回将str转义后的字符串,但不会修改str本身。
//一般使用格式
str = str.replace(正则表达式或字符串, 替换的内容);

注意:replace方法默认情况下只能替换查询到的第一个位置的符合条件的值,如果使用字符串作为替换条件,是无法全部替换的。这时可以使用正则表达式中\g全局替换标识进行操作。

      刚才解释了为了能够全部替换,我们就需要用到正则表达式。正则表达式使用时以 \ 为开头。针对于当前问题,一般要进行的字符是 <,>," ,相对用的正则表达式就是    ***&lt;***    ,    ***&gt;***    和    ***&quot;**    ,其中号只是用于强调。基本正则表达式写完了,后面还需要加上\g参数,代表全部进行替换。综上,最终代码:

//进行替换
str = str.replace(\&lt;, '<');
str = str.replace(\&gt;, '>');
str = str.replace(\&quot;, '\"');//注意替换成双引号时要加上转义符\,这是json本身的要求,否则的话可能无法解析。
//省事一些也可以使用链式写法
str = str.replace(\&lt;, '<').replace(\&gt;, '>').replace(\&quot;, '\"');//顺序无所谓,主要是都替换了就行

结语

      对于其他的内容也同样可以采用这种方法,这是替换字符常用的方法也是解决当json中存在html代码在前端获取时被转换成转义字符的方法之一。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嘻嘻哈哈笑呵呵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值