Spring Boot使用@JsonProperty,@JsonIgnore,@JsonFormat注解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot使用@JsonProperty,@JsonIgnore,@JsonFormat注解相关的知识,希望对你有一定的参考价值。

参考技术A @JsonProperty, @JsonIgnore 和 @JsonFormat 注解都是 fasterxml jackson 里面的注解,现在也被 Spring Boot 集成了。
这里需要注意的是将对象转换成json字符串使用的方法是fasterxml.jackson提供的!!
如果使用fastjson
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
没有生效,为啥?
因为fastjson不认识@JsonProperty注解呀!所以要使用jackson自己的序列化工具方法

我们在使用上面的注解时,不需要在 pom.xml 显示的引入 fasterxml jackson 的依赖包。只需要加入如下依赖即可。

@JsonProperty
用于属性、setter / getter 方法上,属性序列化后可重命名

生成的 json 字符串就是image_width和image_height。
@JsonIgnore

属性使用此注解后,将不被序列化。

@JsonFormat
用于格式化日期

@JsonInclude,@JsonIgnoreProperties,@JsonIgnore

真实案例

"rowid": "111111",
"created": "2018-12-27 16:15:25",
"createdby": "1111111",
"lastupd": "2018-12-27 08:25:48",
"lastupdby": "111111",
"modificationnum": 1

返回Json参数字段均为小写,在接收时,需要按照标准的命名规则进行映射

解决办法:

创建接收数据对象,生成Get\Set方法:,在Set方法上,加上@JsonProperty注解,

@JsonProperty 此注解用于属性上,作用是把该属性的名称序列化为另外一个名称,如把rowId属性序列化为rowid,@JsonProperty("rowid")。

以上是关于Spring Boot使用@JsonProperty,@JsonIgnore,@JsonFormat注解的主要内容,如果未能解决你的问题,请参考以下文章

spring boot 2.0之使用spring boot

spring boot8.spring boot的日志框架使用

(转)Spring Boot 2 :使用 Docker 部署 Spring Boot

Spring boot- Spring Boot特性2

Spring Boot(十七):使用 Spring Boot 上传文件

spring boot:Spring Boot中Redis的使用