We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
在实现IEnum接口的自定义枚举类中定义静态方法,导致json解析异常。
环境信息
枚举类:
import com.alibaba.fastjson2.annotation.JSONField; import com.baomidou.mybatisplus.annotation.EnumValue; import com.baomidou.mybatisplus.annotation.IEnum; public enum BizType implements IEnum<String> { COMMON("common", "通用"); BizType(String value, String name) { this.value = value; this.name = name; } @EnumValue private final String value; private final String name; @JSONField(value = true) public String getValue() { return value; } public String getName() { return name; } public static void test123() {} }
POJO:
import com.demo.test.entity.type.BizType; import lombok.Data; @Data public class VM { private BizType bizType; }
调用:
String str = "{\"bizType\":\"common\"}"; VM vm = JSON.parseObject(str, VM.class);
报错:
报错时的调试信息:
BizType.getValue()方法的返回类型被解析为java.io.Serializable,导致字段解析时,当成intValue在解析
尝试的修正方法
正常解析时的调试信息
项目压缩包 test.zip
补充信息 实际项目环境是,fastjson2-2.0.43 + jdk17 + mybatis-plus-3.5.4.1 半年前把jdk从8升级到17,当时测试没有问题,之后没有再运行过项目 本周再启动环境,出现上述报错 升级到新的版本fastjson2-2.0.51和mybatis-plus-3.5.6后,还是会出现上述报错
不确定是否由mybatis-plus引起, 调试时,由于com.alibaba.fastjson2.reader.ORG_1_35_VM.readObject(Unknown Source)无法跟进,问题定位不太方便
请项目维护人员帮忙看看,感谢感谢!
The text was updated successfully, but these errors were encountered:
fix change to isInt for ObjectReaderImplEnum, for issue #2682
801e1ae
b942ae9
https://github.com/alibaba/fastjson2/releases/tag/2.0.52 问题已修复,请用新版本
Sorry, something went wrong.
fix BeanUtils#getEnumValueField, for issue #2682 (#2821)
bcccf7b
* fix BeanUtils#getEnumValueField, for issue #2682 * fix #2821 * fix #2821
No branches or pull requests
请描述您的问题
在实现IEnum接口的自定义枚举类中定义静态方法,导致json解析异常。
环境信息
枚举类:
POJO:
调用:
报错:
![WechatIMG2992](https://private-user-images.githubusercontent.com/172177302/337963927-8b6c33e0-c358-4583-a615-086f80d004c1.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2ODEwMjgsIm5iZiI6MTczOTY4MDcyOCwicGF0aCI6Ii8xNzIxNzczMDIvMzM3OTYzOTI3LThiNmMzM2UwLWMzNTgtNDU4My1hNjE1LTA4NmY4MGQwMDRjMS5qcGc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNlQwNDM4NDhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yN2NkNjBjN2NiYWMxN2U2ZDMyMGIyMDY2ODc3OWRkYTg5OTQ2YjBmNTgwMTQxYTQ5Mjc3ZDNhNWU3MTI0YmI0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.wDb5erR4i5Xdo0Iaw-aDaPxcTJhtGw5lblHxwN8Ev-I)
报错时的调试信息:
![WechatIMG2991](https://private-user-images.githubusercontent.com/172177302/337964047-ab1fbea2-51b7-42e2-87de-243d014378cb.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2ODEwMjgsIm5iZiI6MTczOTY4MDcyOCwicGF0aCI6Ii8xNzIxNzczMDIvMzM3OTY0MDQ3LWFiMWZiZWEyLTUxYjctNDJlMi04N2RlLTI0M2QwMTQzNzhjYi5qcGc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNlQwNDM4NDhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jOWU0NzcxNTU1YjE3Yzk5NzNkOGE5M2FhZWFlNjFmOGQwNDhiNzU4MWQ2M2U0NzY4YWI1MDI5MDgyZTVlNjQzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.EFyWLoFSMaw3pmlsaFwiCkTHfwN-s269sseSkH5fPPw)
BizType.getValue()方法的返回类型被解析为java.io.Serializable,导致字段解析时,当成intValue在解析
尝试的修正方法
正常解析时的调试信息
![WechatIMG2993](https://private-user-images.githubusercontent.com/172177302/337964364-144d5629-badb-4cf3-9408-c60f440dd482.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2ODEwMjgsIm5iZiI6MTczOTY4MDcyOCwicGF0aCI6Ii8xNzIxNzczMDIvMzM3OTY0MzY0LTE0NGQ1NjI5LWJhZGItNGNmMy05NDA4LWM2MGY0NDBkZDQ4Mi5qcGc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNlQwNDM4NDhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hN2Y1MTI5OTEyYzFlYWI1MDhhMmZlNjZkOWU4ZWE3ODM1YTU2OGExNjFhNzU2YjBiZjlkNTgzYzc0NjIwNzhiJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.WJuKySn_b3HPwgqmrGp3ybtUbjpX8NPbbCGH7mN2Yxo)
项目压缩包
test.zip
补充信息
实际项目环境是,fastjson2-2.0.43 + jdk17 + mybatis-plus-3.5.4.1
半年前把jdk从8升级到17,当时测试没有问题,之后没有再运行过项目
本周再启动环境,出现上述报错
升级到新的版本fastjson2-2.0.51和mybatis-plus-3.5.6后,还是会出现上述报错
不确定是否由mybatis-plus引起,
调试时,由于com.alibaba.fastjson2.reader.ORG_1_35_VM.readObject(Unknown Source)无法跟进,问题定位不太方便
请项目维护人员帮忙看看,感谢感谢!
The text was updated successfully, but these errors were encountered: