SpringBoot全局配置long轉(zhuǎn)String丟失精度的問(wèn)題解決
web項(xiàng)目中,Java后端傳過(guò)來(lái)的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類型缺失精度問(wèn)題
* @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丟失精度的問(wèn)題解決的文章就介紹到這了,更多相關(guān)SpringBoot long轉(zhuǎn)String丟失精度內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot傳給前端Long類型精度丟失的解決方案
- SpringBoot返回long,前端接收進(jìn)度丟失,@JsonSerialize不生效問(wèn)題
- SpringBoot返回前端Long類型字段丟失精度問(wèn)題及解決方案
- SpringBoot分頁(yè)的實(shí)現(xiàn)與long型id精度丟失問(wèn)題的解決方案介紹
- springboot?Long?精度丟失問(wèn)題解決
- SpringBoot2.0解決Long型數(shù)據(jù)轉(zhuǎn)換成json格式時(shí)丟失精度問(wèn)題
- SpringBoot全局配置long轉(zhuǎn)String丟失精度問(wèn)題解決方案
- SpringBoot基于Jackson解決Long型長(zhǎng)度丟失問(wèn)題
相關(guān)文章
springcloud gateway網(wǎng)關(guān)服務(wù)啟動(dòng)報(bào)錯(cuò)的解決
這篇文章主要介紹了springcloud gateway網(wǎng)關(guān)服務(wù)啟動(dòng)報(bào)錯(cuò)的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
idea創(chuàng)建properties文件,解決亂碼問(wèn)題
這篇文章主要介紹了idea創(chuàng)建properties文件,解決亂碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
解決分頁(yè)插件pagehelper在SpringBoot不起作用的問(wèn)題
這篇文章主要介紹了解決分頁(yè)插件pagehelper在SpringBoot不起作用的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
Java通過(guò)經(jīng)緯度坐標(biāo)獲取兩個(gè)點(diǎn)之間的直線距離的示例
這篇文章主要介紹了Java通過(guò)經(jīng)緯度坐標(biāo)獲取兩個(gè)點(diǎn)之間的直線距離的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
SpringBoot實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)慢查詢監(jiān)控的方案小結(jié)
在企業(yè)級(jí)應(yīng)用開(kāi)發(fā)中,數(shù)據(jù)庫(kù)性能往往是系統(tǒng)整體性能的關(guān)鍵瓶頸,因此,對(duì)數(shù)據(jù)庫(kù)慢查詢進(jìn)行有效監(jiān)控和及時(shí)優(yōu)化,是保障系統(tǒng)穩(wěn)定運(yùn)行的重要環(huán)節(jié),下面我們來(lái)看看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

