前端获取后台json过程由于转义字符出现的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011548068/article/details/70260339

数据库存储信息,特别是什么属性名称,由用户手动输入,通常会包含有一些特殊字符,比如说双引号,单引号,转义字符\等

取数据将其显示在页面上的时候,特别是当我们把这些信息以json的格式返回给页面,前端插件拿着json来加载一些结果,比如一棵树。

由于json格式是{"A":"XXXX"}的形式

那如果XXXX包含了双引号,单引号或者转义字符,那么从数据库获取的数据如果是想自己在后台拼凑成一个json字符串返回页面去加载的话肯定需要先处理一下,不然就会出现json解析失败的错误。

如果数据库保存的是双引号。那么后台取到的数据应该是\",所以我们要将这两个字符替换成\\\"

但是这里要注意,因为你是要将内容拼接到json字符串里,也就是说变成字符串的时候,也会将转义字符给转义,那么我们替换的那些工作就没用了

因此,这里需要再加一层转义:\\\"  =>  \\\\\\\" 也就是每个字符前面都加个转义字符一遍。

所以我们拼接成的json就是"{\"A\":\"\\\\\\\"\"}";

将json字符串传递到前端,前端首先获取字符串的内容会转义一次:{"A":"\\\""}

然后将字符串转为json给前端组件使用。这时又转义一次:{"A":"\""}

最后前端组件要显示json的A字段"\""(它是个字符串),展示在页面上又转义了一次,于是拿到了双引号 "

以上就是前端获取后台json字符串的过程。 

猜你喜欢

转载自blog.csdn.net/u011548068/article/details/70260339
今日推荐