-
Notifications
You must be signed in to change notification settings - Fork 511
New issue
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
[QUESTION]2.0.47存在反序列化数值溢出问题 #2305
Comments
它确实就溢出了, 不想溢出可以使用 BigInteger 或者 BigDecimal 类型 |
这个-1000值虽不合理,但在2.0.47之前都能正常运行,到了2.0.47之后就会出现程序异常了.只想要能够和之前的保持一致. |
缺省抛异常是合理的,但应该加一个JSONReader.Feature给用户选择是否抛异常 |
如果选择忽略这个异常,给什么值合适呢?包装类给 null 值,基本类型给 0? |
BigInteger bigInt = new BigInteger("18446744073709550616");
String s = "{\"value\": " + bigInt + "}";
@Test
public void test() {
assertThrows(
JSONException.class,
() -> JSON.parseObject(s, Bean.class));
Bean bean = JSON.parseObject(s, Bean.class, JSONReader.Feature.NonErrorOnNumberOverflow);
assertEquals(bean.value, bigInt.longValue());
}
public static class Bean {
public long value;
} https://oss.sonatype.org/content/repositories/snapshots/com/alibaba/fastjson2/fastjson2/2.0.48-SNAPSHOT/ |
测试过 2.0.5 , 2.0.46都能正常反序列化,但是2.0.47就存在溢出报错
2.0.47之前版本显示
![image](https://private-user-images.githubusercontent.com/63693013/311252540-f2cfc7d6-1d34-43ba-b6ed-8e8d5717bd9a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2MDE3NjIsIm5iZiI6MTczOTYwMTQ2MiwicGF0aCI6Ii82MzY5MzAxMy8zMTEyNTI1NDAtZjJjZmM3ZDYtMWQzNC00M2JhLWI2ZWQtOGU4ZDU3MTdiZDlhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDA2Mzc0MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc5NjA3NjE1NDkyYjVjMjA2Mzk4MGQ5OTgwYjI4ZDE3NmYxNTQ2OWNjNTVkYzEwOGE0YWRiYTJlYTI1MzE2YmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.JWDNTyPAkAhUOL_HIR0vajlX0EhUzAjE_SbhsiGFF7U)
2.0.47版本显示
![image](https://private-user-images.githubusercontent.com/63693013/311252957-571ab4a6-2eaf-4b96-85ca-3dd45796ea95.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2MDE3NjIsIm5iZiI6MTczOTYwMTQ2MiwicGF0aCI6Ii82MzY5MzAxMy8zMTEyNTI5NTctNTcxYWI0YTYtMmVhZi00Yjk2LTg1Y2EtM2RkNDU3OTZlYTk1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDA2Mzc0MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA1MWY4ZGZmMzM5YTc5YzBjODdjYTg3ODdkNGRhMWU4NGY2NDdjMjY5ZTU1MTg4ODBkZjRlNzIzNDI2ODFhM2YmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.U6-m0AcAK3eS7xXJC3IJES_S8vyJG7734AEObz_6W_8)
The text was updated successfully, but these errors were encountered: