这个问题困扰了我好多天,一直以为需要用jackson的反序列化做这个功能,奈何在JsonDeserializer的deserializer的方法参数中找不到可用的反射对象,然后就一直困扰着我,各种翻资料,看api,着实吃力
后来发现之前用过的一个注@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 的查询条件,这样我就不用做其他的事,只需要前台传需要查询的参数即可,就这么简单的解决了~~