@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<Date> {
    @Override
    public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
        jsonGenerator.writeNumber(date.getTime() / 1000);
    }
}
 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM