设置代码如下
ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
log.info("fastjson isAutoType: {}",ParserConfig.getGlobalInstance().isAutoTypeSupport());
启动输出log如下
2018-09-04 21:59:35.225 INFO 11815 --- [ main] c.c.k.f.c.r.c.RedisConfiguration : fastjson isAutoType: true
依旧报错
Caused by: com.alibaba.fastjson.JSONException: autoType is not support. com.cuiyun.kfcoding.framework.cache.sample.model.User
at com.alibaba.fastjson.parser.ParserConfig.checkAutoType(ParserConfig.java:1003) ~[fastjson-1.2.44.jar:na]
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:316) ~[fastjson-1.2.44.jar:na]
at com.alibaba.fastjson.parser.DefaultJSONParser.parseArray(DefaultJSONParser.java:1174) ~[fastjson-1.2.44.jar:na]
at com.alibaba.fastjson.parser.DefaultJSONParser.parse(DefaultJSONParser.java:1342) ~[fastjson-1.2.44.jar:na]
at com.alibaba.fastjson.parser.deserializer.JavaObjectDeserializer.deserialze(JavaObjectDeserializer.java:45) ~[fastjson-1.2.44.jar:na]
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:654) ~[fastjson-1.2.44.jar:na]
at com.alibaba.fastjson.JSON.parseObject(JSON.java:365) ~[fastjson-1.2.44.jar:na]
at com.alibaba.fastjson.JSON.parseObject(JSON.java:328) ~[fastjson-1.2.44.jar:na]
at com.alibaba.fastjson.support.spring.GenericFastJsonRedisSerializer.deserialize(GenericFastJsonRedisSerializer.java:37) ~[fastjson-1.2.44.jar:na]
... 69 common frames omitted
请问在springboot2.x版本添加ParserConfig.getGlobalInstance().setAutoTypeSupport(true);代码兼容springboot1.x版本么?
8条答案
按热度按时间cqoc49vn1#
并且我看源码 发现在GenericFastJsonRedisSerializer也设置了defaultRedisConfig.setAutoTypeSupport(true)
源码代码如下
版本是fastjson版本是1.2.44
83qze16e2#
fastjson版本1.2.49 有上面问题
xxe27gdn3#
spring boot 2.0.3.RELEASE + kotlin
fastjson 1.2.49
也有上面的问题
tp5buhyn4#
问下 这个问题解决了吗?
goucqfw65#
1.2.55版本也遇到这个问题了
看了下源码,是因为实体类存在多参构造方法才抛出的异常,实体类删掉多参构造器就可以了。
dtcbnfnu6#
kotlin 1.2.55 一样的问题
5rgfhyps7#
@NightFarmer ,若多参构造器是需要用的,那咋解?
py49o6xq8#
若存在多参构造器,增加无参构造器可解决