java byte转string 精度丢失_SpringBoot全局配置long转String丢失精度问题解决方案 - Go语言中文社区

java byte转string 精度丢失_SpringBoot全局配置long转String丢失精度问题解决方案


a87d8a8c6576a46fa3d9cb13e1b828eb.png

web项目中,前端JS使用Java后端传过来的Long/long会丢失精度。

后端将返回的数据改为String使用即可

第一种

自己建个配置类

extends WebMvcConfigurerAdapter 已经被弃用,直接实现WebMvcConfigurer该接口就行了

@EnableWebMvc

@Configuration

public class WebDataConvertConfig implements WebMvcConfigurer {

public void configureMessageConverters(List> converters) {

MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();

ObjectMapper objectMapper = new ObjectMapper();

/**

* 序列换成json时,将所有的long变成string

* 因为js中得数字类型不能包含所有的java long值

*/

SimpleModule simpleModule = new SimpleModule();

simpleModule.addSerializer(Long.class, ToStringSerializer.instance);

simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);

objectMapper.registerModule(simpleModule);

jackson2HttpMessageConverter.setObjectMapper(objectMapper);

converters.add(jackson2HttpMessageConverter);

}

第二种

前提是使用Jackson2

@Configuration

public class JacksonConfig {

/**

* Jackson全局转化long类型为String,解决jackson序列化时long类型缺失精度问题

* @return Jackson2ObjectMapperBuilderCustomizer 注入的对象

*/

@Bean

public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {

Jackson2ObjectMapperBuilderCustomizer cunstomizer = new Jackson2ObjectMapperBuilderCustomizer() {

@Override

public void customize(Jackson2ObjectMapperBuilder jacksonObjectMapperBuilder) {

jacksonObjectMapperBuilder.serializerByType(Long.TYPE, ToStringSerializer.instance);

jacksonObjectMapperBuilder.serializerByType(Long.class, ToStringSerializer.instance);

}

};

return cunstomizer;

}

自己项目使用的时候,第二种未能生效。可能是由于不是使用的jackson2??。使用第一种可以,遂采用了第一种

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持云海天教程。

原文链接:https://www.cnblogs.com/bigorang/p/12202152.html

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_28837817/article/details/114595831
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-31 10:08:32
  • 阅读 ( 1697 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢