自定义JSON返回字段

今天看到一篇文章,里面介绍了如何自定义返回json字段,感觉挺好用的,这里学习一下。

实现工具类:

/**
 * @author fengzp
 * @date 17/2/20上午10:34
 * @email fengzp@gzyitop.com
 * @company 广州易站通计算机科技有限公司
 */
public class JsonFilter {

    private static final String INCLUDE = "JSON_INCLUDE";
    private static final String EXCEPT = "JSON_EXCEPT";

    @com.fasterxml.jackson.annotation.JsonFilter(INCLUDE)
    interface MyJsonInclude {}

    @com.fasterxml.jackson.annotation.JsonFilter(EXCEPT)
    interface MyJsonExcept {}


    public static String mapper(Object bean, Class<?> clazz, String include, String except) throws JsonProcessingException {

        if(clazz == null)
            return null;

        ObjectMapper mapper = new ObjectMapper();

        if(StringUtils.hasText(include)){
            mapper.setFilterProvider(new SimpleFilterProvider().addFilter(INCLUDE,
                    SimpleBeanPropertyFilter.filterOutAllExcept(include.split(","))));

            mapper.addMixIn(clazz, MyJsonInclude.class);
        }

        if(StringUtils.hasText(except)){
            mapper.setFilterProvider(new SimpleFilterProvider().addFilter(EXCEPT,
                    SimpleBeanPropertyFilter.serializeAllExcept(except.split(","))));

            mapper.addMixIn(clazz, MyJsonExcept.class);
        }

        return mapper.writeValueAsString(bean);
    }

}

测试:

public class User {
private Integer id;

private String userName;

private String password;

private String realName;

private Boolean status;

private String email;

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createdAt;

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updatedAt;

954438-20170220105426116-305793747.png

954438-20170220105439710-2024609058.png

转载于:https://www.cnblogs.com/andyfengzp/p/6418569.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值