日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

springboot @JsonSerialize 的使用

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springboot @JsonSerialize 的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

解決前端顯示和后臺存儲數據單位不一致的問題。

在返回對象時,進行自定義數據格式轉換。

  • 寫一個類繼承JsonSerializer 抽象類, 實現其serialize()方法,然后在方法中寫入轉換規則即可
  • 舉例是把Date時間戳從 毫秒 轉換成 秒 為單位

    import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider;import java.io.IOException; import java.util.Date;public class Date2LongSerializer extends JsonSerializer<Date> {@Overridepublic void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {jsonGenerator.writeNumber(date.getTime() / 1000);} }
  • 然后在傳輸的實體類中的屬性上打上@JsonSerialize注解即可
  • @Data public class OrderMaster {@Idprivate String orderId;private String buyerName;private String buyerPhone;private String buyerAddress;private String buyerOpenid;private BigDecimal orderAmount;/** 訂單狀態,默認為新下單. */private Integer orderStatus = OrderStatusEnum.NEW.getCode();/** 支付狀態,默認為0未支付. */private Integer payStatus = PayStatusEnum.WAIT.getCode();@JsonSerialize(using = Date2LongSerializer.class)private Date createTime;@JsonSerialize(using = Date2LongSerializer.class)private Date updateTime; }
  • 附加:還有一個比較好用的注解,如果返回對象中變量存在null,可以使用 @JsonInclude(JsonInclude.Include.NON_NULL)注解來忽略為null的變量,這樣前端比較好處理
  • @Data @JsonInclude(JsonInclude.Include.NON_NULL) public class OrderDTO extends OrderMaster {private List<OrderDetail> orderDetailList; }

    使用注解之前的返回值:

    使用注解之后:

  • 附加:之前附件3的注解,還是有個問題,如果一個一個實體類配置的話,未免太過麻煩,所以可以在配置文件中直接配置,yml配置文件如下:
  • 文章轉自

    總結

    以上是生活随笔為你收集整理的springboot @JsonSerialize 的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。