qq_44811456
blood7ao
采纳率50%
2021-02-25 19:08

如何剔除sql返回的无用null值?

如图是遍历list之后的结果,因为实体类的字段并不是每次都要用到,所以返回一些字段是null,请问如何剔除呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • lzb820 L-zbin 2月前

    按照你的字面意思提供两种方式给你,希望对你有帮助 

    
    // 配置JSON忽略null字段
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    public class User{
        private String id;
        private String name;
        private String position;
    
        public User(String id, String name, String position) {
            this.id = id;
            this.name = name;
            this.position = position;
        }
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getPosition() {
            return position;
        }
    
        public void setPosition(String position) {
            this.position = position;
        }
    }
    
    public class UserVo{
        private String id;
        private String name;
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }
    
    // 类的使用
    //import com.alibaba.fastjson.JSONObject;
    //import com.fasterxml.jackson.annotation.JsonInclude;
    //import org.springframework.beans.BeanUtils;
    
    // 测试方法
    public static void main(String[] args) {
            // 第一种方式 JSON忽略null的字段
            User user = new User("12", "张三", null);
            System.out.println(JSONObject.toJSONString(user));
    
            // 第二种方式 将需要的字段单独创建一个VO 通过对象复制操作把user 的值 复制到VO中
            UserVo vo = new UserVo();
            BeanUtils.copyProperties(user, vo);
            System.out.println(JSONObject.toJSONString(vo));
        }
    点赞 2 评论 复制链接分享

为你推荐