json去除非法字符

        线上报出一个错误,大概看了一下,错误内容为:syntax error, pos 1, line 1, column 2,堆栈信息,很明显是fastjson格式化报错了,心想,这还不简单,人肉检查json是不是符合json格式即可,看到日志记录的json,我才意识到没那么简单,json格式相当简单,只有两对kv,看起来也没有任何问题。差不多就是这样的一个格式:{"a":"123","b":"456"} 将起放入json解析中,也完全可以解析。此处省略几个小时的心理活动以及推论。下面直接上答案。

        最后我搞到了最原始的json,然后发现前面有一个不可见字符\u200B(注意,不是空格,就是不可见,没有宽度,有和没有肉眼根本看不出来),方法也很简单,在idea中写一个字符串,复制放到""中,隐藏字符串就无所遁形了。

        原因找到了,说下解决方案,那肯定是让他们改json,去掉非法字符串,但是像这种不可见的,对用户来说根本不可感知,怎么能知道是否合法呢,体感会非常查。(因为历史原因,也不可能提交的时候做检查,即使检查出来,用户也不知道怎么改)

        那么我们可以在代码中进行非法字符的去除,非法字符不仅仅是这一种还可能会有其他。下面贴一个正则去除的方式。
 

str1.replaceAll("\\p{C}", "");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值