前言
jackson对long型的转换是没有问题的。
只不过前端js有个问题,java的long型,在转换后,js中展示会损失精度。
如:1500829886697496578,在前端使用js数字类型展示是可能就变成了1500829886697496600。
为了解决这个问题,一般情况下我们会将后端的long型转换为字符串类型。
jackson配置long转换为字符串类型
在spring boot环境下,配置如下代码即可
import com.fasterxml.jackson.databind.ser.std.tostringserializer;
import org.springframework.boot.autoconfigure.jackson.jackson2objectmapperbuildercustomizer;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
@configuration
public class jacksonconf {
/**
* 自定义序列化类型转换
* 注:此处解决long型转换后,前端js损失精度的问题,将long型转换为字符串类型
*/
@bean
public jackson2objectmapperbuildercustomizer jackson2objectmapperbuildercustomizer() {
jackson2objectmapperbuildercustomizer customizer = jacksonobjectmapperbuilder ->
jacksonobjectmapperbuilder.serializerbytype(long.class, tostringserializer.instance)
.serializerbytype(long.type, tostringserializer.instance);
return customizer;
}
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论