• json常用的注解


    json注解:

    1、@JsonIgnoreProperties:

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

    写法将此标签加在model 类的类名上 ,可以多个属性也可以单个属性

    //生成json时将name和age属性过滤
    
    @JsonIgnoreProperties({"name"},{"age"})
    
    public class  user {
    
    private  String name;
    
    private int age;
    
    }

    2、@JsonIgnore(常用注解)

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

    //生成json 时不生成age 属性
    
    public class user {
    
    private String name;
    
    @JsonIgnore
    
    private int age;
    
    }

     3、@JsonFormat:(常用注解)

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

    4、@JsonSerialize:

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

    5、@JsonDeserialize:

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

    6、@Transient

    如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则ORM框架默认其注解为@Basic;

    //表示该字段在数据库表中没有
    
    @Transient
    
    public int getAge() {
    
     return 1+1;
    
    }

    6、@JsonIgnoreType:

    标注在类上,当其他类有该类作为属性时,该属性将被忽略。

    7、@JsonProperty

    @JsonProperty 可以指定某个属性和json映射的名称。例如我们有个json字符串为{“user_name”:”aaa”},
    而java中命名要遵循驼峰规则,则为userName,这时通过@JsonProperty 注解来指定两者的映射规则即可。这个注解也比较常用。

    public class SomeEntity {
    
        @JsonProperty("user_name")
    
        private String userName;
    
    }

    只在序列化情况下生效的注解

    1. @JsonPropertyOrder

    在将 java pojo 对象序列化成为 json 字符串时,使用 @JsonPropertyOrder 可以指定属性在 json 字符串中的顺序。

    2. @JsonInclude

    在将 java pojo 对象序列化成为 json 字符串时,使用 @JsonInclude 注解可以控制在哪些情况下才将被注解的属性转换成 json,例如只有属性不为 null 时。

    @JsonInclude(JsonInclude.Include.NON_NULL)
    这个注解放在类头上,返给前端的json里就没有null类型的字段,即实体类与json互转的时候 属性值为null的不参与序列化。
    另外还有很多其它的范围,例如 NON_EMPTY、NON_DEFAULT等

    在反序列化情况下生效的注解

    1.@JsonSetter

    @JsonSetter 标注于 setter 方法上,类似 @JsonProperty ,也可以解决 json 键名称和 java pojo 字段名称不匹配的问题。

  • 相关阅读:
    js 实现商品放大镜效果
    Angular.js数据绑定时自动转义html标签及内容
    Sublime 快捷键一览表
    这么牛的简历,你见过么?
    正向代理与反向代理
    负载均衡
    redis搭建与安装
    svn服务配置和日常维护命令
    Mysql导出导入
    linux搭建svn服务器
  • 原文地址:https://www.cnblogs.com/wdss/p/11832315.html
Copyright © 2020-2023  润新知