JAVA主要解决JSONObject转义符太多斜杠问题\\\\\\\,String太多斜杠怎么处理,替换\\\\\工具类工具方法解决办法,java太多\\\\\\解决

您所在的位置:网站首页 前端转义字符 JAVA主要解决JSONObject转义符太多斜杠问题\\\\\\\,String太多斜杠怎么处理,替换\\\\\工具类工具方法解决办法,java太多\\\\\\解决

JAVA主要解决JSONObject转义符太多斜杠问题\\\\\\\,String太多斜杠怎么处理,替换\\\\\工具类工具方法解决办法,java太多\\\\\\解决

2023-11-12 01:38| 来源: 网络整理| 查看: 265

 遇到的问题场景如下,断点打的JSON 格式:

主要是斜杠太多导致前端无法正常的展示,需要把斜杠全部替换掉,才可以不然前端展示有问题!

{\"日志\":\"2017-12-02 12:03:19, \\\\\\\"elapsedRealtime\\\\\\\":\\\\\\\"1075259399471\\\\\\\", \\\\\\\"source0Id\\\\\\\":\\\\\\\"\\\\\\\", \\\\\\\"cheme\\\\\\\":\\\\\\\"false\\\\\\\", \\\\\\\"sourceFromUri\\\\\\\":\\\\\\\"\\\\\\\", \\\\\\\"sourceTime\\\\\\\":\\\\\\\"-1\\\\\\\", \\\\\\"supportCache\\\":\\\"false\\\", \\\"suppode\\\":\\\"true\\\", \\\"paiType\\\":\\\"ode\\\", \\\"protersion\\\\\\\":\\\\\\\"5.5.1\\\\\\\"}

问题发生的原因:

主要是串行序列化之后,转译成对象而后又转化为JSONOBject主要是因为Array->Obecjt 转义多次导致的。

保存数据库-自动添加斜杠,JSON菜单迭代转换,也会自动添加进去斜杠字符

解决办法就是使用StringEscapeUtils工具类直接的调用的处理进行转义。 import org.apache.commons.lang.StringEscapeUtils; //主要是解决转义符太多斜杆个问题\\\\\\\",\\\\\\\" datasJson=StringEscapeUtils.unescapeJavaScript(datasJson); sout(datasJson); 第三方优秀的处理JAR: import org.apache.commons.lang.StringEscapeUtils;

发生场景主要是发生在接口对接的时候,接收对象处理,以及对象发送。 

主要得maven依赖配置:

org.apache.commons commons-lang3

 

教训总结:

在数据库之前使用这个字符串工具进行转义,虽然断点显示,转换正常,可是落库之后,Mysql会对JSON字符串里面的网址或者存储进行转义,导致会添加一个\\,所以最优化的方案就是在读取之后进行转义,这样一劳永逸。后者前台页面进行转义,比较麻烦。

前端的React其实也可以达到这个效果,主要是使用replace()

另一种解决办法

在前端的代码里面替换掉这些多余的斜杠然后写进去。替换掉里面的斜杠代码如下。

try{ let e1 = e.replace(/\\\\/g,"\\"); e1 = e1.replace(/\\\\/g,"\\"); e1 = this.replaceAll(e1, ';', ''); e1 = this.replaceAll(e1, ';', '"'); e1 = this.replaceAll(e1, 'quot;', '"'); e1 = this.replaceAll(e1, 'lt;', ''); return content; } catch (e){ console.log(e); return e1 ; }

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3