@JsonSerialize(using = LongToStringUtil.class)注解的使用方式
@JsonSerialize(using = LongToStringUtil.class)注解
一般我們?cè)诙xprivate Long id;時(shí),會(huì)添加上@JsonSerialize(using = LongToStringUtil.class)這樣類似的注解,接下來(lái)我們來(lái)看一下這個(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注解,可以幫助我們解決該問(wèn)題。
在using = LongToStringUtil.class
可以使用我們自定義的類,來(lái)將我們傳入的值轉(zhuǎn)換為String類型,來(lái)傳入到前端,可以解決精度問(wèn)題
定義的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值超過(guò)前端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 Data JPA動(dòng)態(tài)條件查詢的寫法
本篇文章主要介紹了Spring Data JPA動(dòng)態(tài)條件查詢的寫法 ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06SpringBoot實(shí)現(xiàn)微信支付接口調(diào)用及回調(diào)函數(shù)(商戶參數(shù)獲取)
本文詳細(xì)介紹了使用SpringBoot實(shí)現(xiàn)微信支付接口調(diào)用及回調(diào)函數(shù)的步驟,提供了代碼實(shí)現(xiàn)的具體步驟和工具類的創(chuàng)建,感興趣的朋友跟隨小編一起看看吧2024-11-11解決Feign配置RequestContextHolder.getRequestAttributes()為null的問(wèn)題
這篇文章主要介紹了解決Feign配置RequestContextHolder.getRequestAttributes()為null的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Java 實(shí)現(xiàn)常見的非對(duì)稱加密算法
這篇文章主要介紹了Java 實(shí)現(xiàn)常見的非對(duì)稱加密算法,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-11-11