@JsonSerialize(using = ToStringSerializer.class)和@JsonSerialize注解的使用方法
java中long数据能表示的范围比js中number大,在跟前端交互时,这样也就意味着部分数值在js中存不下(变成不准确的值)。
解决办法可以这样:
使用fastjson的ToStringSerializer注解,让系统序列化时,保留相关精度
@JsonSerialize(using = ToStringSerializer.class) private Long id;
@JsonSerialize注解的使用方法
关于这个注解的方法,可以自己定义class,作为using的值来使用:
@JsonSerialize(using = DateToLongSerializer.class) private Date createTime;
这个的意义就是当转成json时,把时间转成秒的格式:
public class DateToLongSerializer extends JsonSerializer{ @Override public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { jsonGenerator.writeNumber(date.getTime() / 1000); } }