SpringBoot全局配置long轉(zhuǎn)String丟失精度的問題解決
web項(xiàng)目中,Java后端傳過來的Long/long類型,前端JS接收會丟失精度。
本文推薦第三、第四種方式
第一種方式
簡單粗暴,將所有的Lang類型,改為String,數(shù)據(jù)庫改成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 注入的對象
*/
@Bean
public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder
.serializerByType(Long.class, ToStringSerializer.instance)
.serializerByType(Long.TYPE, ToStringSerializer.instance);
}
}
第四種方式(缺點(diǎn):將所有的數(shù)字類型都會轉(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot傳給前端Long類型精度丟失的解決方案
- SpringBoot返回long,前端接收進(jìn)度丟失,@JsonSerialize不生效問題
- SpringBoot返回前端Long類型字段丟失精度問題及解決方案
- SpringBoot分頁的實(shí)現(xiàn)與long型id精度丟失問題的解決方案介紹
- springboot?Long?精度丟失問題解決
- SpringBoot2.0解決Long型數(shù)據(jù)轉(zhuǎn)換成json格式時(shí)丟失精度問題
- SpringBoot全局配置long轉(zhuǎn)String丟失精度問題解決方案
- SpringBoot基于Jackson解決Long型長度丟失問題
相關(guān)文章
springcloud gateway網(wǎng)關(guān)服務(wù)啟動報(bào)錯的解決
這篇文章主要介紹了springcloud gateway網(wǎng)關(guān)服務(wù)啟動報(bào)錯的解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
idea創(chuàng)建properties文件,解決亂碼問題
這篇文章主要介紹了idea創(chuàng)建properties文件,解決亂碼問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07
解決分頁插件pagehelper在SpringBoot不起作用的問題
這篇文章主要介紹了解決分頁插件pagehelper在SpringBoot不起作用的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
Java通過經(jīng)緯度坐標(biāo)獲取兩個(gè)點(diǎn)之間的直線距離的示例
這篇文章主要介紹了Java通過經(jīng)緯度坐標(biāo)獲取兩個(gè)點(diǎn)之間的直線距離的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
SpringBoot實(shí)現(xiàn)對數(shù)據(jù)庫慢查詢監(jiān)控的方案小結(jié)
在企業(yè)級應(yīng)用開發(fā)中,數(shù)據(jù)庫性能往往是系統(tǒng)整體性能的關(guān)鍵瓶頸,因此,對數(shù)據(jù)庫慢查詢進(jìn)行有效監(jiān)控和及時(shí)優(yōu)化,是保障系統(tǒng)穩(wěn)定運(yùn)行的重要環(huán)節(jié),下面我們來看看SpringBoot實(shí)現(xiàn)慢查詢的6種監(jiān)控方案吧2025-06-06
Spring StateMachine實(shí)現(xiàn)狀態(tài)機(jī)使用示例詳解
本文介紹SpringStateMachine實(shí)現(xiàn)狀態(tài)機(jī)的步驟,包括依賴導(dǎo)入、枚舉定義、狀態(tài)轉(zhuǎn)移規(guī)則配置、上下文管理及服務(wù)調(diào)用示例,重點(diǎn)解析狀態(tài)同步、事件觸發(fā)與數(shù)據(jù)持久化機(jī)制,感興趣的朋友跟隨小編一起看看吧2025-07-07

