欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

@JsonSerialize(using = LongToStringUtil.class)注解的使用方式

 更新時間:2024年08月23日 09:05:52   作者:太白神龍  
這篇文章主要介紹了@JsonSerialize(using = LongToStringUtil.class)注解的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

@JsonSerialize(using = LongToStringUtil.class)注解

一般我們在定義private Long id;時,會添加上@JsonSerialize(using = LongToStringUtil.class)這樣類似的注解,接下來我們來看一下這個注解是什么意思?有什么作用?

使用注解

如下所示:

@JsonSerialize(using = LongToStringUtil.class)
private Long id;

@JsonSerialize在com.fasterxml.jackson.databind.annotation路徑下,是fastjson包下的接口。

我們實體類中定義的Long類型的數(shù)據(jù)在和前端交互時

會比number數(shù)值更大,會導(dǎo)致精度缺失,使用JsonSerialize注解,可以幫助我們解決該問題。

在using = LongToStringUtil.class

可以使用我們自定義的類,來將我們傳入的值轉(zhuǎn)換為String類型,來傳入到前端,可以解決精度問題

定義的LongToStringUtil類需要繼承自JsonSerializer<Long>類

代碼如下所示:

//在實體類的long類型屬性上加上注解:@JsonSerialize(using =LongToStringSerializer.class)
//Long類型數(shù)據(jù)(eg:id)傳到前臺會超出JS精確整形范圍,因此轉(zhuǎn)化為String傳到前臺
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)用法及注意事項

該注解的作用

把指定的類型轉(zhuǎn)化String類型返給前端

為什么使用該注解

如果Long值超過前端js顯示的長度范圍時會導(dǎo)致前端回顯錯誤

此時我們想到的解決方案是將Long值返回給前端時轉(zhuǎn)為String,

但是我們又不想變更字段的類型,當(dāng)然我們也不想額外添加新的字段。

這個時候我們可以用@JsonSerialize,在Json序列化的時候把Long自動轉(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;

注意:

一定要在返回的實體類的字段上加上該注解

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論