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

一般我们在定义private Long id;时,会添加上@JsonSerialize(using = LongToStringUtil.class)这样类似的注解,接下来我们来看一下这个注解是什么意思?有什么作用?

1、使用注解如下所示:

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

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

2、我们实体类中定义的Long类型的数据在和前端交互时,会比number数值更大,会导致精度缺失,使用JsonSerialize注解,可以帮助我们解决该问题。

3、在using  = LongToStringUtil.class,可以使用我们自定义的类,来将我们传入的值转换为String类型,来传入到前端,可以解决精度问题,定义的LongToStringUtil类需要继承自JsonSerializer类,代码如下所示:

//在实体类的long类型属性上加上注解:@JsonSerialize(using =LongToStringSerializer.class)
//Long类型数据(eg:id)传到前台会超出JS精确整形范围,因此转化为String传到前台
public class LongToStringUtil extends JsonSerializer {

	@Override
	public void serialize(Long value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
		if(null!=value) {
			gen.writeString(String.valueOf(value));
		}
	}

}

路漫漫其修远兮,吾将上下而求索,希望此篇文章能够对大家有所帮助.........

你可能感兴趣的:(Java,java)