我在程序里使用 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吗?那应该怎么设置?
5条答案
按热度按时间k3fezbri1#
这个类没有缺省构造函数?
cfh9epnr2#
遇到了同样的问题,请问解决了吗?
xn1cxnb43#
+1
nbnkbykc4#
ParserConfig.getGlobalInstance().addAccept("com.xxx.");
我最后用上面的代码,通过指定包来做的
连续看了fastjson一些版本的代码,上面那段抛出异常的代码是后加入的。
我猜可能是为了安全性吧,怕构造函数里面有不安全的代码,反序列化时候自动执行。
vmpqdwk35#
同样遇到了这个问题