json常用的注解

摘要:
例如,我们有一个json字符串为{“user_name”:“aaa”},而在java中,如果命名应该遵循驼峰规则,则为userName。此时,您可以通过@JsonProperty注释指定两者的映射规则。

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等

资源搜索网站大全 https://www.renrenfan.com.cn

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

1.@JsonSetter

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

免责声明:文章转载自《json常用的注解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【转】C++调试技巧白乔原创:VC之美化界面篇下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C#(4):XML序列化

一、使用 System.Xml.Serialization类 1、定义元数据 引入System.Xml.Serialization命名空间。 XML序列化常用属性: XmlRoot XmlType XmlText XmlEnum [Serializable] [XmlRoot] public class Product { public int...

基于Memcached的tomcat集群session共享所用的jar及多个tomcat各种序列化策略配置

原文:http://www.cnblogs.com/interdrp/p/4096466.html 多个tomcat各种序列化策略配置如下:一、java默认序列化tomcat配置conf/context.xml添加<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManag...

springboot之jackson的两种配置方式

springboot 针对jackson是自动化配置的,如果需要修改,有两种方式: 方式一:通过application.yml 配置属性说明:## spring.jackson.date-format指定日期格式,比如yyyy-MM-dd HH:mm:ss,或者具体的格式化类的全限定名 spring.jackson.deserialization是否开启J...

dubbo协议参考手册(转)

原文链接:http://wely.iteye.com/blog/2331332 协议参考手册 (+) (#) 推荐使用Dubbo协议 性能测试报告各协议的性能情况,请参见:性能测试报告(+) dubbo:// (+) (#) Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服...

XML、Linq、序列化、反射、XSLT在测试报告统计工具中的应用 Anny

客户要求对XML格式的测试结果进行统计,并发送出特定格式的邮件。 1. 测试结果有两种文件,一种是以xml为后缀的xml格式文件,一种是VS里跑测试用例产生的以trx为后缀的xml格式文件。 2. 每个文件里包含多个测试用例,每个测试用例有对应的Owner和归属类别Area。 3. 最后输出的报告格式如下: Area File Owner Pass F...

反序列化漏洞

反序列化 原理介绍 序列化就是把对象转换成字节流,便于保存在内存、文件、数据库中;反序列化即逆过程,由字节流还原成对象。Java中的ObjectOutputStream类的writeObject()方法可以实现序列化,类ObjectInputStream类的readObject()方法用于反序列化。比如你可以将字符串对象先进行序列化,存储到本地文件,然后再...