這個問題困擾了我好多天,一直以為需要用jackson的反序列化做這個功能,奈何在JsonDeserializer的deserializer的方法參數中找不到可用的反射對象,然后就一直困擾著我,各種翻資料,看api,著實吃力
后來發(fā)現之前用過的一個注@JsonFormat,之前一直使用作為時間的格式化,但是其中的一個屬性表示可以定義格式化的@JsonFormat(shape = JsonFormat.Shape.OBJECT)
然后,困擾我好幾天的問題就這樣簡單的解決了,之前一直堅信jackson肯定有內部的解決方法,但是就是找不到,然后用自己的實現方式又很繁瑣
以下是實例代碼:
@Data
@Accessors(chain = true)
public class PageDto<T> extends Page<T> {
/**
* 查詢數據列表
*/
@JsonView(BaseEntity.BaseEntityView.class)
private List<T> records = Collections.emptyList();
/**
* 總數
*/
@JsonView(BaseEntity.BaseEntityView.class)
private long total = 0;
/**
* 每頁顯示條數,默認 10
*/
@JsonView(BaseEntity.BaseEntityView.class)
private long size = 10;
/**
* 當前頁
*/
@JsonView(BaseEntity.BaseEntityView.class)
private long current = 1;
/**
* 當前總頁數
*/
@JsonView(BaseEntity.BaseEntityView.class)
private long pages;
/**
* 進行 count 查詢 【 默認: true 】
*/
private boolean isSearchCount = true;
/**
* 是否進行分頁查詢
*/
private boolean isPageable = true;
/**
* 查詢條件封裝
*/
@JsonView(BaseEntity.BaseEntityView.class)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
private T wrapper;
}
我主要的目的是封裝以上實體的wrapper參數,作為mybatis plus 的查詢條件,這樣我就不用做其他的事,只需要前臺傳需要查詢的參數即可,就這么簡單的解決了~~