SpringBoot全局配置long轉(zhuǎn)String丟失精度的問題解決
web項目中,Java后端傳過來的Long/long類型,前端JS接收會丟失精度。
本文推薦第三、第四種方式
第一種方式
簡單粗暴,將所有的Lang類型,改為String,數(shù)據(jù)庫改成varchar類型;
第二種方式
自己建個配置類
extends WebMvcConfigurerAdapter 已經(jīng)被棄用,直接實現(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時,將所有的long變成string * 因為js中得數(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序列化時long類型缺失精度問題 * @return Jackson2ObjectMapperBuilderCustomizer 注入的對象 */ @Bean public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() { return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder .serializerByType(Long.class, ToStringSerializer.instance) .serializerByType(Long.TYPE, ToStringSerializer.instance); } }
第四種方式(缺點:將所有的數(shù)字類型都會轉(zhuǎn)為字符串)
bootstrap.yml添加以下配置:
spring: jackson: #將所有的number類型轉(zhuǎn)為String返回 generator: write_numbers_as_strings: true #格式化返回時間 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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Hibernate 與 Mybatis 的共存問題,打破你的認(rèn)知!(兩個ORM框架)
這篇文章主要介紹了Hibernate 與 Mybatis 如何共存?本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08詳解Java分布式系統(tǒng)中session一致性問題
這篇文章主要介紹了Java分布式系統(tǒng)中session一致性問題,對分布式系統(tǒng)感興趣的同學(xué),要仔細(xì)看一下2021-04-04SpringBoot下token短信驗證登入登出權(quán)限操作(token存放redis,ali短信接口)
這篇文章主要介紹了SpringBoot下token短信驗證登入登出權(quán)限操作(token存放redis,ali短信接口),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11java并發(fā)編程專題(八)----(JUC)實例講解CountDownLatch
這篇文章主要介紹了java CountDownLatch的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07