国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java中的JsonSerializer用法,前后端單位轉換必備

java中的JsonSerializer用法,前后端單位轉換必備

2022-02-19 14:38xiaozhengtongxue Java教程

這篇文章主要介紹了java中的JsonSerializer用法,前后端單位轉換必備!具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

java中的JsonSerializer用法

背景

今天在寫項目的時候遇到一個問題,項目中有個類中有創(chuàng)建時間和更新時間兩個屬性,但是單位在后端用的是Date,而前端給的API中用的是秒。這就涉及到單位的轉換問題。但是如何優(yōu)雅地對單位進行轉化呢?

演示

java中的JsonSerializer用法,前后端單位轉換必備

解決方法

利用@JsonSerialize注解,可以方便地實現(xiàn)將date數(shù)據(jù)轉換成long型數(shù)據(jù)等功能,該注解作用在屬性的getter()方法上。

1. 寫一個負責轉換的類,繼承自JsonSerializer類,里面寫好規(guī)則

public class Date2LongSerializer extends JsonSerializer<Date> {
  @Override
  public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {//把Date轉成Long
      jsonGenerator.writeNumber(date.getTime() / 1000);
  }
}

2. 在返回的參數(shù)里加上注解@JsonSerialize(using = XXX.class) XXX為上一步新建的轉換類

  //創(chuàng)建時間
  @JsonSerialize(using = Date2LongSerializer.class)//時間戳將Date轉成Long
  private Date categoryTime;
  //修改時間
  @JsonSerialize(using = Date2LongSerializer.class)
  private Date updateTime;

這樣就完成了時間戳的轉換。

java中的JsonSerializer用法,前后端單位轉換必備

 

JackJson中自定義JsonSerializer使用

最近在做一個需求,一個時間字段,數(shù)據(jù)庫類型為timestamp,默認值為'1970-01-01 08:00:01',產(chǎn)品要求這種情況展示為“-1”,實體類中的屬性類型為Date,我也不能把Date屬性值設置為“-1”,又不想新加一個String類型的屬性,那怎么辦呢?

遇到這種問題,可以使用JackJson的@JsonSerialize,具體實現(xiàn)如下:

1、自定義類繼承JsonSerializer

public class DefaultTimeSerializer extends JsonSerializer<Date> {
 /**
  * Method that can be called to ask implementation to serialize
  * values of type this serializer handles.
  *
  * @param value       Value to serialize; can <b>not</b> be null.
  * @param gen         Generator used to output resulting Json content
  * @param serializers Provider that can be used to get serializers for
  */
 @Override
 public void serialize(Date value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
    if (THOUSAND_MILLISECOND.equals(value.getTime())) {
       gen.writeString("-1");
    } else {
       gen.writeString(DateUtils.dateFormat(value, DateUtils.MONTH_PATTERN));
    }
 }
}

2、在實體類的字段上

使用@JsonSerialize注解,并且指定要使用的Serializer

/**
* 日期(精確到月)
*/
@JsonSerialize(using = DefaultTimeSerializer.class)
private Date Time;

3、使用效果

java中的JsonSerializer用法,前后端單位轉換必備

java中的JsonSerializer用法,前后端單位轉換必備

其實使用SpringBoot的@RestController注解,我們最終返回的結果集都會被轉換為Json信息,那么就沒有類型而言,因為都是String格式的了。

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

原文鏈接:https://www.cnblogs.com/xiaozhengtongxue/p/13442727.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 精品一区二区免费视频 | 成人免费网视频 | 国产成人综合av | 免费观看av毛片 | 精品亚洲一区二区三区四区五区 | 久久精品伊人 | 国产精品永久免费 | 欧美视频一区二区 | 日产精品一区二区三区在线观看 | 国产91久久久久蜜臀青青天草二 | 男女爱爱视频免费 | 日韩在线中文字幕 | 欧美日一区 | 欧美1区2区 | 日本视频一区二区 | 国产在线观看一区二区 | 日韩精品影院 | 天天影视网色香欲综合网无拦截 | 日日骚av| 国产一区二区在线播放 | 国产成人亚洲综合 | 国产亚洲精品女人久久久久久 | 在线成人免费视频 | 成人片免费看 | 欧美一级在线 | 性色蜜桃x88av | 国内激情自拍 | 日韩国产一区二区 | 四虎影院入口 | 亚洲成人看片 | 在线日韩视频 | 这里只有精品视频 | 欧美日韩一级二级三级 | 久草精品在线 | 亚洲精品永久视频 | 日本一区二区高清视频 | 91精品久久久久久久久 | 日本三级网 | 岛国av免费 | 国产精品不卡一区 | 天堂中文av |