java 富文本框内容 保存与恢复_使用富文本编辑器保存数据后进行fastjson格式转换异常及序列化处理...

线上系统因富文本框内容导致Fastjson解析异常,主要体现在JSON序列化与反序列化过程中。通过分析,发现特殊字符在富文本中可能导致问题。为了解决这个问题,采用了Hessian进行序列化,将数据转换为二进制存储,避免了解析异常。更新缓存处理逻辑,使用HessianUtil工具类进行序列化和反序列化操作,成功解决了线上问题。
摘要由CSDN通过智能技术生成

最近线上的ELK日志监控爆出几个异常问题,jsonException的解析问题。如下:

message: 2019-04-10 23:37:43,952 ERROR aop.AspectAdvice eid=410724004 not match : - ,

com.alibaba.fastjson.JSONException: not match : - , at

com.alibaba.fastjson.parser.JSONLexerBase.nextTokenWithChar(JSONLexerBase.java:369) at

com.alibaba.fastjson.parser.JSONLexerBase.nextTokenWithColon(JSONLexerBase.java:347) at

com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.parseExtra(JavaBeanDeserializer.java:411) at

com.alibaba.fastjson.parser.deserializer.ASMJavaBeanDeserializer.parseField(ASMJavaBeanDeserializer.java:69) at

com.alibaba.fastjson.parser.deserializer.ASMJavaBeanDeserializer$InnerJavaBeanDeserializer.parseField(ASMJavaBeanDeserializer.java:86) at

com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:310) at

com.alibaba.fastjson.parser.deserializer.ASMJavaBeanDeserializer.parseRest(ASMJavaBeanDeserializer.java:96) at

Fastjson_ASM_BBSPostVo_369.deserialze(Unknown Source) at

com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:513) at

com.alibaba.fastjson.JSON.parseObject(JSON.java:244) at

com.alibaba.fastjson.JSON.parseObject(JSON.java:220) at

com.alibaba.fastjson.JSON.parseObject(JSON.java:179) at

com.alibaba.fastjson.JSON.parseObject(JSON.java:323) at

.....

由于代码已经在线上运行了2个月左右,突然爆出这样的错误,猜想应该是由输入的信息引起。

这里的业务逻辑是查出一个数据列表,存入redis缓存,第二次查询的时候,如果缓存中有值,则读取缓存中的值。

需要将缓存值解析为对应的对象。对象中有富文本编辑属性的字段

//类似如下结构、报错位置在cacheService.get位置.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值