@JsonInclude、@JsonIgnore和@JsonFormat注解
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
一、@JsonIgnore:
1、作用:
在json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。
一般标记在属性或者方法上,在返回的json数据就不包含该属性
2、场景模拟:
将一个User序列化成Json数据并返回给前台,当我们在User的password和email属性上添加@JsonIgnore注解时,即使后台给这两个属性赋值了,返回前台的Json也不包含它们。
public class User {
private String name;
private String age;
private String sex;
@JsonIgnore //添加JsonIgnore注解,返回时被忽略
private String password;
@JsonIgnore //添加JsonIgnore注解,返回时被忽略
private String email;
public User() {}
}
3、@JsonIgnore注解失效
如果注解失效,可能是因为你使用的是fastJson,尝试使用对应的注解来忽略字段,注解为:@JSONField(serialize = false),使用方法一样。
二、@JsonFormat:
作用:
- Date和String的相互转化
- 时差调整
使用场景:
- 一般后台传值给前台时
- 在我们中国来讲和我们的北京时间,会相差8个小时,因为我们是东八区(北京时间)。所以我们在格式化的时候要指定时区(timezone )
Date和String的自动转化
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 后台返给前台时, 日期自动格式化
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date birth;
指定时区:
/**更新时间 用户可以点击更新,保存最新更新的时间。**/
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date updateTime;
三、@JsonInclude
作用:
在将 java pojo 对象序列化成为 json 字符串时,使用 @JsonInclude 注解可以控制在哪些情况下才将被注解的属性转换成 json,例如只有属性不为 null 时。
@JsonInclude(JsonInclude.Include.NON_NULL) //类前面使用,如果为空则不反悔该属性json
public class SellerInfoEntity {
private String id;
private String username;
@JsonInclude(JsonInclude.Include.NON_EMPTY) //属性前使用,如果为空则不返回该属性json
private String password;
private String openid;
private Timestamp createTime;
private Timestamp updateTime;
public SellerInfoEntity() {
}
public SellerInfoEntity(String id, String username, String password, String openid) {
this.id = id;
this.username = username;
this.password = password;
this.openid = openid;
}
}
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
4 个月前
8c391e04
6 个月前
更多推荐
已为社区贡献2条内容
所有评论(0)