<
>

JSON序列化导致Long类型被搞成Integer的坑及解决

2022-04-16 16:34:51 来源:易采站长站 作者:

目录
jsON序列化导致Long类型被搞成Integer的坑上代码方案思考JSON格式转int/long报错Gson转换导致int转换成double的问题

JSON序列化导致Long类型被搞成Integer的坑

最近遇到一个错误,就是某个字段肯定是Long类型的,通过Map<String,Object>方式转成JSON字符串,然后存到了DB的某个字段里。

为了Json存储字,然后反序列化为Map(不是自定义的常规对象)

比如某二方为了提供通用的接口能力,将Map<String,Object>的数据通过JSON序列化方式缓存然后JSON反序列化拿到Map。

等情况。

用的时候就通过Key获取对象之后直接强转Long,然后类型转换异常。

java.lang.ClassCastException: java.lang.Integer canle的问题

使用情景:后端返回的json字符串,通过gson处理后,原本是int类型,现在获取到的是double类型的。

JSON序列化导致Long类型被搞成Integer的坑及解决

解决:

int i = ((Number)fromJson.get("int")).intValue();int i = Math.round(Double.parseDouble(fromJson.get("int").toString));

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

暂时禁止评论

微信扫一扫

易采站长站微信账号