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 字段名称不匹配的问题。

最新文章

  1. System.Diagnostics.Process.Star的用法
  2. maven 入门
  3. HDU3923-Invoker-polya n次二面体
  4. MySQL 绿色版(zip) 安装
  5. 【转】C/C++ struct/class/union内存对齐
  6. Entity Framework 学习第二天 续
  7. 【Git - 基础篇】如何快速有效的管理你的代码 - 安装和配置
  8. Paxos算法(转)
  9. JQuery的几种页面加载完执行三种方式
  10. Javascript学习5 - 函数
  11. Javascript多线程引擎(六)
  12. mongo 初级使用
  13. quartz.net 3.x 使用总结
  14. jarvis level6_x64堆溢出unlink拾遗
  15. TensorFlow——循环神经网络基本结构
  16. 【DWM1000】 code 解密5一ACHOR 第一次回家Main 函数
  17. 安卓——Activity生命周期、
  18. Eclipse代码注释模板-code template
  19. Spring MVC - 拦截器实现 和 用户登陆例子
  20. Nagios自定义扩展

热门文章

  1. NopCommerce的autofac的理解
  2. 梯度直方图(HOG,Histogram of Gradient)
  3. idea的EasyCode使用
  4. 微信小程序wxs如何使用
  5. navigateTo防止多次跳转
  6. 1.SpringMVC 概述
  7. 【loj#2524】【bzoj5303】 [Haoi2018]反色游戏(圆方树)
  8. 【CQOI2017】老C的方块
  9. Mariadb多实例启动脚本
  10. Redis主从复制(读写分离)(四)