zoukankan      html  css  js  c++  java
  • 自定义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;
    

  • 相关阅读:
    package.json 字段全解析 share
    Git 使用方法
    浅谈移动前端的最佳实践(转)
    node启动服务后,窗口不能关闭。pm2了解一下
    WebSocket--客户端
    布局:多列等高布局方法
    uni-app调用支付宝、微信支付
    scss 入门基础
    mac生成iOS证书(配图)
    通过扫码打开IOS的App Store下载APP(Android版暂时没找到解决方法)
  • 原文地址:https://www.cnblogs.com/andyfengzp/p/6418569.html
Copyright © 2011-2022 走看看