// json中带null的会报错, 比如这个ALTER语句产生的消息 String messageData = "{"data":null,"database":"canal-test-to1","es":1654937242000,"id":153,"isDdl":true,"mysqlType":null,"old":null,"pkNames":null,"sql":"ALTER TABLE canal-test-to1
.test_table1
ADD COLUMN birthday
date NULL","sqlType":null,"table":"test_table1","ts":1654937242664,"type":"ALTER"}"; CommonMessage commonMessage = JSON.parseObject(messageData, CommonMessage.class); System.out.println(commonMessage);
异常栈信息
Exception in thread "main" com.alibaba.fastjson2.JSONException: json format error : n at com.alibaba.fastjson2.reader.FieldReaderListStrMethod.readFieldValue(FieldReaderListStrMethod.java:83) at com.alibaba.fastjson2.reader.ObjectReaderBean.readObject(ObjectReaderBean.java:174) at com.alibaba.fastjson2.JSON.parseObject(JSON.java:258)
// 把null去掉就没问题 String messageData = "{"database":"canal-test-to1","es":1654937242000,"id":153,"isDdl":true,"sql":"ALTER TABLE canal-test-to1
.test_table1
ADD COLUMN birthday
date NULL","table":"test_table1","ts":1654937242664,"type":"ALTER"}"; CommonMessage commonMessage = JSON.parseObject(messageData, CommonMessage.class); System.out.println(commonMessage);
换成旧版本的fastjson上面的代码都没问题
原提问者GitHub用户jimmy384
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。