您的位置:首页 > 其它

解决Gson2.0默认Int转Double问题

2018-01-11 18:46 393 查看
     Gson默认Int会转成Double,但是提供了hook覆写转换方法。具体如下:

/**
* 解决gson默认将int转换为double
*
* @return
*/
public static Gson getIntGson() {
Gson gson = new GsonBuilder().
registerTypeAdapter(Double.class, new JsonSerializer<Double>() {

@Override
public JsonElement serialize(Double src, Type typeOfSrc, JsonSerializationContext context) {
if (src == src.longValue())
return new JsonPrimitive(src.longValue());
return new JsonPrimitive(src);
}
}).create();
return gson;
}     另外Gson的版本也要注意。之前用的2.0,是不支持上述覆写的,会报错:Cannot register type adapters for class java.lang.Double。原因是在2.3以上才支持。具体见Gson的Issue说明:https://github.com/google/gson/issues/378 。打不开的话,简要贴下说明:
Fixed in 2.3 by restoring the ability to register custom serializers for
primitive types.


    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐