fastjson setAutoTypeSupport(true)后反序列化失败

6ovsh4lw  于 5个月前  发布在  其他
关注(0)|答案(5)|浏览(80)

我在程序里使用 ParserConfig.getGlobalInstance().setAutoTypeSupport(true) 全局开启AutoType,在反序列化时报错“com.alibaba.fastjson.JSONException: autoType is not support”。跟进代码发现是在com.alibaba.fastjson.parser.ParserConfig下面的地方抛出的异常

if (beanInfo.creatorConstructor != null && autoTypeSupport) {
                throw new JSONException("autoType is not support. " + typeName);
            }

这次要反序列化的JavaBean确实有一个public的构造函数,但是不太理解这段代码的含义,在其他地方也没找到相关的说明,所以想问下:
对于有public构造函数的JavaBean,不能设置全局开启AutoType吗?那应该怎么设置?

k3fezbri

k3fezbri1#

这个类没有缺省构造函数?

cfh9epnr

cfh9epnr2#

遇到了同样的问题,请问解决了吗?

nbnkbykc

nbnkbykc4#

ParserConfig.getGlobalInstance().addAccept("com.xxx.");
我最后用上面的代码,通过指定包来做的

连续看了fastjson一些版本的代码,上面那段抛出异常的代码是后加入的。
我猜可能是为了安全性吧,怕构造函数里面有不安全的代码,反序列化时候自动执行。

vmpqdwk3

vmpqdwk35#

同样遇到了这个问题

相关问题