首页 > 其他分享 >Json常用注解

Json常用注解

时间:2022-11-10 16:35:58浏览次数:61  
标签:常用 String private 忽略 Json 注解 序列化 属性

Json常用注解

@Data
@JsonIgnoreProperties(value = {"sex", "phone"})
public class User {
    private String id;
    private String name;
    private String sex;
    private String phone;
    private String mail;

    @JsonIgnore
    private String address;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date regDate;

}



以上例子说明User类的sex和phone字段会被@JsonIgnoreProperties注解忽略。address字段会被@JsonIgnore注解忽略。regDate会按照@JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)进行格式转。

@JsonIgnoreProperties

作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。@JsonIgnoreProperties(ignoreUnknown = true),将这个注解写在类上之后,就会忽略类中不存在的字段。

allowGetters,allowSetters一起用用来控制字段忽视是在序列化还是反序列化
allowGetters=true:字段允许序列化,反序列的时候忽略该字段
allowSetters=true:字段允许反序列化,序列化的时候忽略该字段
ignoreUnknown=true:反序列化的时候忽视未知的字段,解决字段无法对应实体类会报错json解析异常

@JsonIgnore

用于属性或者方法上(最好是属性上),用来完全忽略被注解的字段和方法对应的属性,即便这个字段或方法可以被自动检测到或者还有其他的注解,一般标记在属性或者方法上,返回的json数据即不包含该属性。

@JsonFormat

@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")

pattern: 需要转换的时间日期的格式
timezone:将时间设置为东八区,避免时间在转换中有误差

可以在属性对应的get方法上,两种方式没有区别

@JsonSerialize

用于属性或getter方法,在序列化时嵌入自定义代码,例如限制double类型精确到两位数

需要使用 using 属性指定处理参数的类,该类需要继承 JsonSerializer 类,并重写 serialize()。
若使用了 Lombok 需要自己定义相应的 get 方法。

以将日期格式化为yy-mm-dd为例。

@JsonSerialize(using = CustomDateSerialize.class)
public Date getDate() {
    return date;
}

@JsonDeserialize

用于属性或者setter方法上,用于在反序列化时可以嵌入我们自定义的代码,类似于上面的@JsonSerialize。

@JsonInclude

属性值为null的不参与序列化。例子:@JsonInclude(Include.NON_NULL)。

标签:常用,String,private,忽略,Json,注解,序列化,属性
From: https://www.cnblogs.com/todayiswendy/p/16877521.html

相关文章

  • 日期时间常用类和其API
    packageA_ShangGuiGu.String;importorg.junit.Test;importjava.util.Date;publicclassDate_Time{@Testpublicvoidtest1(){/***1.System......
  • box和json
    intcount=bVal["BOX"].size();if(bVal["BOX"].isArray()){board->m_box=CBox(bVal["BOX"][0].asFloat(),bVal["BOX"][1].asFloat(......
  • cesium 加载geoJson格式的图斑
    Cesium加载geoJson格式的图斑方法://首次进来判断是否存在图斑if(this.geoSource){this.Global.viewer.dataSources.remove(this.Global.viewer.dataSources.get......
  • Hibernate简单注解开发和事务处理(四)
    勿以恶小而为之,勿以善小而不为--------------------------刘备劝诸君,多行善事积福报,莫作恶上一章简单介绍了Hibernate实现简单的CRUD操作和常见类(三),如果没有看过,​​请观......
  • 注解加反射动态创建表
    场景:一个实体,几十个字段,Java实体类建一遍,数据库建一遍,痛苦面具 所需代码:packageme.xiaomaju.base;importjava.lang.annotation.ElementType;importjava.lang.a......
  • 124-常用的gitignore
    logs.idea.gittargetdist.mvn.classpath.factorypath.apt_generated.project.settings.springBeans.sts4-cache*.iws*.iml*.iprThumbs.dbehthumbs.dbDesk......
  • Linux上查看网络带宽的18个常用命令
    Linux上查看网络带宽的18个常用命令:​按照功能进行划分:​监控总体带宽的使用:nload、bmon、bwm-ng、cbm、speedometer和netload​监控总体带宽的使用(批量式输出):vnstat、ifs......
  • linux常用硬件故障排查工具之dmesg
      dmesg命令是用来在Unix-like系统中显示内核的相关信息的。dmesg全称是displaymessage(ordisplaydriver),即显示信息。实际上,dmesg命令是从内核环形......
  • Pod常用操作
    2、Pod常用操作1、pause基础设施容器。为了实现pod内部可以通过localhost通信,每个pod都会启动Infra容器,然后pod内部的其他容器间会共享该容器的网络空间(docker的contain......
  • @excel 注解_Java读写Excel原来这么简单
    前言相信现在很多搞后端的同学大部分做的都是后台管理系统,那么管理系统就肯定免不了Excel的导出导入功能,今天我们就来介绍一下Java如何实现Excel的导入导出功能。Jav......