@JsonSerialize(using = LongToStringUtil.class)注解的使用方式
@JsonSerialize(using = LongToStringUtil.class)注解
一般我們?cè)诙xprivate Long id;時(shí),會(huì)添加上@JsonSerialize(using = LongToStringUtil.class)這樣類似的注解,接下來我們來看一下這個(gè)注解是什么意思?有什么作用?
使用注解
如下所示:
@JsonSerialize(using = LongToStringUtil.class) private Long id;
@JsonSerialize在com.fasterxml.jackson.databind.annotation路徑下,是fastjson包下的接口。

我們實(shí)體類中定義的Long類型的數(shù)據(jù)在和前端交互時(shí)
會(huì)比number數(shù)值更大,會(huì)導(dǎo)致精度缺失,使用JsonSerialize注解,可以幫助我們解決該問題。
在using = LongToStringUtil.class
可以使用我們自定義的類,來將我們傳入的值轉(zhuǎn)換為String類型,來傳入到前端,可以解決精度問題
定義的LongToStringUtil類需要繼承自JsonSerializer<Long>類
代碼如下所示:
//在實(shí)體類的long類型屬性上加上注解:@JsonSerialize(using =LongToStringSerializer.class)
//Long類型數(shù)據(jù)(eg:id)傳到前臺(tái)會(huì)超出JS精確整形范圍,因此轉(zhuǎn)化為String傳到前臺(tái)
public class LongToStringUtil extends JsonSerializer<Long> {
@Override
public void serialize(Long value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
if(null!=value) {
gen.writeString(String.valueOf(value));
}
}
}@JsonSerialize(using = ToStringSerializer.class)用法及注意事項(xiàng)
該注解的作用
把指定的類型轉(zhuǎn)化String類型返給前端
為什么使用該注解
如果Long值超過前端js顯示的長(zhǎng)度范圍時(shí)會(huì)導(dǎo)致前端回顯錯(cuò)誤
此時(shí)我們想到的解決方案是將Long值返回給前端時(shí)轉(zhuǎn)為String,
但是我們又不想變更字段的類型,當(dāng)然我們也不想額外添加新的字段。
這個(gè)時(shí)候我們可以用@JsonSerialize,在Json序列化的時(shí)候把Long自動(dòng)轉(zhuǎn)為String
示例
/** * 主鍵 */ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; @TableId @JsonSerialize(using = ToStringSerializer.class) private Long id;
注意:
一定要在返回的實(shí)體類的字段上加上該注解
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring創(chuàng)建bean對(duì)象三種方式代碼實(shí)例
這篇文章主要介紹了Spring創(chuàng)建bean對(duì)象三種方式代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
Java接口方法默認(rèn)靜態(tài)實(shí)現(xiàn)代碼實(shí)例
這篇文章主要介紹了Java接口方法默認(rèn)靜態(tài)實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Spring Security實(shí)現(xiàn)兩周內(nèi)自動(dòng)登錄"記住我"功能
登錄過程中經(jīng)常使用的“記住我”功能,也就是我們經(jīng)常會(huì)在各種網(wǎng)站登陸時(shí)見到的"兩周內(nèi)免登錄",“三天內(nèi)免登錄”的功能。今天小編給大家分享基于Spring Security實(shí)現(xiàn)兩周內(nèi)自動(dòng)登錄"記住我"功能,感興趣的朋友一起看看吧2019-11-11
java編程實(shí)現(xiàn)并查集的路徑壓縮代碼詳解
這篇文章主要介紹了java編程實(shí)現(xiàn)并查集的路徑壓縮代碼詳解,具有一定借鑒價(jià)值,需要的朋友可以參考。2017-11-11
maven pom中內(nèi)置變量及引用的實(shí)現(xiàn)
maven其實(shí)有很多內(nèi)置變量供開發(fā)著在開發(fā)中使用,本文主要介紹了maven pom中內(nèi)置變量及引用的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
Spring @Cacheable自定義緩存過期時(shí)間的實(shí)現(xiàn)示例
本文主要介紹了Spring @Cacheable自定義緩存過期時(shí)間的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05
idea?Maven?插件?docker-maven-plugin?打包docker鏡像上傳到遠(yuǎn)程倉庫的過程詳解
這篇文章主要介紹了idea Maven插件docker-maven-plugin打包docker鏡像上傳到遠(yuǎn)程倉庫,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05
Java中日期的加減&String Date Calendar的相互轉(zhuǎn)換方式
這篇文章主要介紹了Java中日期的加減&String Date Calendar的相互轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-05-05

