jsonformat注解,jsonformat注解无效

http://www.itjxue.com  2023-01-07 18:59  来源:未知  点击次数: 

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

@JsonProperty, @JsonIgnore 和 @JsonFormat 注解都是 fasterxml jackson 里面的注解,现在也被 Spring Boot 集成了。

这里需要注意的是将对象转换成json字符串使用的方法是fasterxml.jackson提供的!!

如果使用fastjson

dependency

groupIdcom.alibaba/groupId

artifactIdfastjson/artifactId

version1.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")。

Text '2022-1-3' could not be parsed at index 5什么意思

格式转换错误

解决措施:

Model实体内属性timeTamp加上注解@JsonFormat和@DateTimeFormat

第一个注解@JsonFormat是解析数据库传过来的时间,将其转换为自己定义的格式(即pattern)后发送到网页接收;@DateTimeFormat为解析前端json发送的时间字符串将其转为正确的格式。

在调试接口的时候,前端的Json时间数据需要为正确的"yyyy-mm-dd HH:MM:SS"即”2020-04-28 17:53:02“才能被正确解析。

ListUser List = JSONArray.parseArray(jsonData.getJSONArray("前端发送过来的集合名").toJSONString(),User.class);

这里用的是Fastjson里的JSONArray类。这一步就是将前端的包含集合的json正确解析至自己定义的集合了

SpringBoot @JsonIgnoreProperties、@JsonIgnore、@JsonFormat注解的简单使用

类上添加了@JsonIgnoreProperties(value = {"password"}) 注解,即忽略password字段,不会返回password

@JsonIgnore注解用来忽略某些字段,可以用在变量或者Getter方法上,用在Setter方法时,和变量效果一样。这个注解一般用在我们要忽略的字段上。

@JsonIgnoreProperties(ignoreUnknown = true),将这个注解写在类上之后,就会忽略类中不存在的字段。这个注解还可以指定要忽略的字段,例如@JsonIgnoreProperties({ “password”, “secretKey” })

@JsonFormat可以帮我们完成格式转换。例如对于Date类型字段,如果不适用JsonFormat默认在rest返回的是long,如果我们使用@JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”),就返回"2018-11-16 22:58:15"

comment、fullName、address属性被忽略了,regDate的格式进行转换

(责任编辑:IT教学网)

更多

相关其它软件文章

推荐其它软件文章