fastjson解析json对象报default constructor not found 异常解决方法
时间:2023-09-18 18:37:10
Exception in thread "main" com.alibaba.fastjson.JSONException: default constructor not found. class org.example.demo.BuilderDemo at com.alibaba.fastjson.util.DeserializeBeanInfo.computeSetters(DeserializeBeanInfo.java:149) at com.alibaba.fastjson.parser.ParserConfig.createJavaBeanDeserializer(ParserConfig.java:349) at com.alibaba.fastjson.parser.ParserConfig.getDeserializer(ParserConfig.java:322) at com.alibaba.fastjson.parser.ParserConfig.getDeserializer(ParserConfig.java:266) at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:456) at com.alibaba.fastjson.JSON.parseObject(JSON.java:206) at com.alibaba.fastjson.JSON.parseObject(JSON.java:166)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:287)
at org.example.demo.BuilderTest.main(BuilderTest.java:16)
用 fastjson 解析 json 对象时报错 default constructor not found. class
解决方法
在指定类添加默认构造函数即可
原理
主要原因是, fastjson 底层是通过反射机制来解析对象的,必须要有默认构造器来创建对象,并通过 set 方法来设置属性。目前在最新版本中已解决了该问题。