SpringBoot全局配置long轉(zhuǎn)String丟失精度的問題解決
web項(xiàng)目中,Java后端傳過來的Long/long類型,前端JS接收會(huì)丟失精度。
本文推薦第三、第四種方式
第一種方式
簡(jiǎn)單粗暴,將所有的Lang類型,改為String,數(shù)據(jù)庫(kù)改成varchar類型;
第二種方式
自己建個(gè)配置類
extends WebMvcConfigurerAdapter 已經(jīng)被棄用,直接實(shí)現(xiàn)WebMvcConfigurer該接口就行了
@EnableWebMvc @Configuration public class WebDataConvertConfig implements WebMvcConfigurer { public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter(); ObjectMapper objectMapper = new ObjectMapper(); /** * 序列換成json時(shí),將所有的long變成string * 因?yàn)閖s中得數(shù)字類型不能包含所有的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全局轉(zhuǎn)化long類型為String,解決jackson序列化時(shí)long類型缺失精度問題 * @return Jackson2ObjectMapperBuilderCustomizer 注入的對(duì)象 */ @Bean public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() { return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder .serializerByType(Long.class, ToStringSerializer.instance) .serializerByType(Long.TYPE, ToStringSerializer.instance); } }
第四種方式(缺點(diǎn):將所有的數(shù)字類型都會(huì)轉(zhuǎn)為字符串)
bootstrap.yml添加以下配置:
spring: jackson: #將所有的number類型轉(zhuǎn)為String返回 generator: write_numbers_as_strings: true #格式化返回時(shí)間 yyyy-MM-dd HH:mm:ss date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8
到此這篇關(guān)于SpringBoot全局配置long轉(zhuǎn)String丟失精度的問題解決的文章就介紹到這了,更多相關(guān)SpringBoot long轉(zhuǎn)String丟失精度內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot+WebSocket+Netty實(shí)現(xiàn)消息推送的示例代碼
這篇文章主要介紹了SpringBoot+WebSocket+Netty實(shí)現(xiàn)消息推送的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04Java向上轉(zhuǎn)型與向下轉(zhuǎn)型超詳細(xì)圖解
我們?cè)贘ava編程中經(jīng)常碰到類型轉(zhuǎn)換,對(duì)象類型轉(zhuǎn)換主要包括向上轉(zhuǎn)型和向下轉(zhuǎn)型,這篇文章主要介紹了Java向上轉(zhuǎn)型與向下轉(zhuǎn)型的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04java面試JDK8?new?ReentrantLock()加鎖流程解析
這篇文章主要為大家介紹了java面試JDK8?new?ReentrantLock()加鎖流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07