Json注解详情、swagger时间格式注释接受

让Spring能够把作为ResponseBody返回的Java对象自动使用Jackson序列化为JSON根式

这样,只要在控制器方法上添加@ResponseBody注解(或在控制器类上添加@RestController注解),则方法返回值就会被Jackson自动序列化为JSON格式返回。
见配置文件片段:
<!-- 使用Jackson把ResponseBody编码为JSON -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter"/>
</list>
</property>
</bean>
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>

常用Jackson注解解释

@JsonNaming(SnakeCaseStrategy.class)
指定Json字段名映射策略为蛇形大小写策略。缺省则直接使用Bean属性名
可用的命名映射策略还有:
KebabCaseStrategy: 肉串策略 - 单词小写,使用连字符'-'连接
SnakeCaseStrategy: 蛇形策略 - 单词小写,使用下划线'_'连接;即老版本中的LowerCaseWithUnderscoresStrategy
LowerCaseStrategy: 小写策略 - 简单的把所有字母全部转为小写,不添加连接符
UpperCamelCaseStrategy: 驼峰策略 - 单词首字母大写其它小写,不添加连接符;即老版本中的PascalCaseStrategy

@JsonIgnoreProperties({"id", "created", "steps", "copy", "stepList"})
类注解,指定序列化时忽略这些属性,可以用于覆盖超类中默认输出的属性

@JsonInclude(Include.NON_EMPTY)
仅在属性不为空时序列化此字段,对于字符串,即null或空字符串

@JsonIgnore
序列化时忽略此字段

@JsonProperty(value = "user_name")
指定序列化时的字段名,默认使用属性名

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
指定Date类字段序列化时的格式

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy年MM月dd日 HH:mm:ss", timezone = "GMT+8")

指定Date类字段序列化时的格式,shape 设置传入的值格式转换成json,pattern 时间格式,timezone处理时间少8小时问题

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")接受string类型的时间格式"yyyy-MM-dd HH:mm:ss"

@JsonUnwrapped(prefix = "user_")
private User user;
把成员对象中的属性提升到其容器类,并添加给定的前缀,比如上例中: User类中有name和age两个属性,不使用此注解则序列化为:
... "user": { "name": "xxx", "age": 22 } ...
使用此注解则序列化为:
... "user_name": "xxx", "user_age": 22, ...

@JsonIgnoreType
类注解,序列化时忽略此类

@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class,property = "id") 
作用于类或属性上,被用来在序列化/反序列化时为该对象或字段添加一个对象识别码,通常是用来解决循环嵌套的问题
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值