Java接口long类型精度丢失,解决前后端交互Long类型精度丢失问题
雪花算法ID,對(duì)應(yīng)的后端Long類(lèi)型,前端number類(lèi)型,它們的精度不一樣,導(dǎo)致精度丟失
現(xiàn)象
雪花算法得到的ID較長(zhǎng),傳到前端后,精度丟失
庫(kù)中:23754851322302474
后端:23754851322302474
前端:23754851322302470
解決方法
將Long類(lèi)型轉(zhuǎn)成String,再傳給前端
方法一:單個(gè)注解@JsonSerialize(using=?ToStringSerializer.class)
private?Long?id;
方法二:統(tǒng)一配置package?com.jiawa.wiki.config;
import?com.fasterxml.jackson.databind.ObjectMapper;
import?com.fasterxml.jackson.databind.module.SimpleModule;
import?com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import?org.springframework.context.annotation.Bean;
import?org.springframework.context.annotation.Configuration;
import?org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
/**
*?統(tǒng)一注解,解決前后端交互Long類(lèi)型精度丟失的問(wèn)題
*?公眾號(hào):甲蛙全棧
*?關(guān)聯(lián)視頻課程《Spring?Boot?+?Vue3?前后端分離?實(shí)戰(zhàn)wiki知識(shí)庫(kù)系統(tǒng)》
*?https://coding.imooc.com/class/474.html
*/
@Configuration
public?class?JacksonConfig?{
@Bean
public?ObjectMapper?jacksonObjectMapper(Jackson2ObjectMapperBuilder?builder)?{
ObjectMapper?objectMapper?=?builder.createXmlMapper(false).build();
SimpleModule?simpleModule?=?new?SimpleModule();
simpleModule.addSerializer(Long.class,?ToStringSerializer.instance);
objectMapper.registerModule(simpleModule);
return?objectMapper;
}
}
——————?THE END??——————
原文鏈接:http://www.jiawablog.com/detail?id=156521212003094528
甲蛙博客,專(zhuān)注Java全棧技術(shù)分享
總結(jié)
以上是生活随笔為你收集整理的Java接口long类型精度丢失,解决前后端交互Long类型精度丢失问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java项目processes设置,Jv
- 下一篇: java自定义一个timeout,Tim