Json解析工具 @JsonIgnore 注解的使用

  • @JsonIgnoreProperties

         此注解是类注解,作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。

  • @JsonIgnore

         此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样。

  • @JsonFormat

        此注解用于属性或者方法上(最好是属性上),可以方便的把Date类型直接转化为我们想要的模式,比如@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")

  • @JsonSerialize

        此注解用于属性或者getter方法上,用于在序列化时嵌入我们自定义的代码,比如序列化一个double时在其后面限制两位小数点。

-----------------------------------------------------------------------------------------------------------------------------------------------------

@JsonIgnore 注解的定义

作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。

如下一个实体父类

1import java.util.Date; 2 3import org.apache.commons.lang3.StringUtils; 4import org.hibernate.validator.constraints.Length; 5 6import com.fasterxml.jackson.annotation.JsonFormat; 7import com.fasterxml.jackson.annotation.JsonIgnore; 8import com.thinkgem.jeesite.common.utils.IdGen; 9import com.thinkgem.jeesite.modules.sys.entity.User; 10import com.thinkgem.jeesite.modules.sys.utils.UserUtils; 11 12/** 13 * 数据Entity类 14 * @author 盻神~ 15 * @version 2016-08-16 16 */ 17public abstract class DataEntity<T> extends BaseEntity<T> { 18 19 private static final long serialVersionUID = 1L; 20 21 protected String remarks; // 备注 22 protected User createBy; // 创建者 23 protected Date createDate; // 创建日期 24 protected User updateBy; // 更新者 25 protected Date updateDate; // 更新日期 26 protected String delFlag; // 删除标记(0:正常;1:删除;2:审核) 27 protected String codeNum; //编号 28 protected int codeFlag; //编号标记 29 30 public DataEntity() { 31 super(); 32 this.delFlag = DEL_FLAG_NORMAL; 33 } 34 35 public DataEntity(String id) { 36 super(id); 37 } 38 39 /** 40 * 插入之前执行方法,需要手动调用 41 */ 42 @Override 43 public void preInsert(){ 44 // 不限制ID为UUID,调用setIsNewRecord()使用自定义ID 45 if (!this.isNewRecord){ 46 setId(IdGen.uuid()); 47 } 48 User user = UserUtils.getUser(); 49 if (StringUtils.isNotBlank(user.getId())){ 50 this.updateBy = user; 51 this.createBy = user; 52 } 53 this.updateDate = new Date(); 54 this.createDate = this.updateDate; 55 } 56 57 /** 58 * 更新之前执行方法,需要手动调用 59 */ 60 @Override 61 public void preUpdate(){ 62 User user = UserUtils.getUser(); 63 if (StringUtils.isNotBlank(user.getId())){ 64 this.updateBy = user; 65 } 66 this.updateDate = new Date(); 67 } 68 69 @Length(min=0, max=255) 70 public String getRemarks() { 71 return remarks; 72 } 73 74 public void setRemarks(String remarks) { 75 this.remarks = remarks; 76 } 77 78 @JsonIgnore 79 public User getCreateBy() { 80 return createBy; 81 } 82 83 public void setCreateBy(User createBy) { 84 this.createBy = createBy; 85 } 86 87 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") 88 public Date getCreateDate() { 89 return createDate; 90 } 91 92 public void setCreateDate(Date createDate) { 93 this.createDate = createDate; 94 } 95 96 @JsonIgnore 97 public User getUpdateBy() { 98 return updateBy; 99 } 100 101 public void setUpdateBy(User updateBy) { 102 this.updateBy = updateBy; 103 } 104 105 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") 106 public Date getUpdateDate() { 107 return updateDate; 108 } 109 110 public void setUpdateDate(Date updateDate) { 111 this.updateDate = updateDate; 112 } 113 114 @JsonIgnore 115 @Length(min=1, max=1) 116 public String getDelFlag() { 117 return delFlag; 118 } 119 120 public void setDelFlag(String delFlag) { 121 this.delFlag = delFlag; 122 } 123 @JsonIgnore 124 public String getCodeNum() { 125 return codeNum; 126 } 127 128 public void setCodeNum(String codeNum) { 129 this.codeNum = codeNum; 130 } 131 @JsonIgnore 132 public int getCodeFlag() { 133 return codeFlag; 134 } 135 136 public void setCodeFlag(int codeFlag) { 137 this.codeFlag = codeFlag; 138 } 139 140 141 142 143}

当加上@JsonIgnore 注解之后, 如果此实体类需要被调用发送到前端、那么这些被加了注解的字段在序列化和反序列化的时候都会受影响。所以将会被忽略、也就是不再响应到前台。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

注解和反射

注解和反射1.注解1.1什么是注解?注解和注释的差别在于注解可以被其他程序读取1.2内置注解@Override定义在java.lang.Override中,表示一个方法声明打算重写超类中的另一个方法声明@Deprecated定义在java.lang.Deprecated中,此注解可以用于修辞方法,属性,类,表示不鼓励程序员使用这样的

Json解析工具 @JsonIgnore 注解的使用 - HelloWorld