常见注解列表
注解名称 | 注解作用 |
---|---|
@JsonFormat | 指定在序列化/反序列化时使用的日期格式。可以用于将日期格式化为指定的字符串,或者将字符串解析为日期对象。 |
@JsonIgnore | 指定在序列化/反序列化时要忽略的属性。可以用于排除不需要序列化/反序列化的属性,或者避免循环引用问题。 |
@JsonProperty | 指定在序列化/反序列化时使用的属性名称。可以用于将 Java 对象的属性名映射到 JSON 字段名,或者将 JSON 字段名映射到 Java 对象的属性名。 |
@JsonView | |
@JsonInclude | 控制在序列化时哪些字段需要包含。可以设置 Include.ALWAYS (默认值,始终包含)、Include.NON_NULL (null 值不包含)、Include.NON_EMPTY (null 值和空集合不包含)等选项。 |
@JsonCreator | 指定在反序列化时使用的构造函数或静态工厂方法。可以用于自定义对象的创建过程,或者处理 JSON 中缺少的属性。 |
@JsonGetter/@JsonSetter | 指定在序列化/反序列化时使用的方法。可以用于自定义属性的序列化/反序列化过程,或者处理 JSON 中缺少的属性。 |
@JsonUnwrapped | 指定在序列化/反序列化时展开嵌套对象。可以用于将嵌套对象的属性展开到当前对象中,或者将当前对象的属性展开到嵌套对象中。 |
关于@JsonFormat、@DateTimeFormat的区别,以及失效问题?
@DateTimeFormat
是 Spring 框架中用于格式化日期的注解。@DateTimeFormat
是Spring框架内部默认集成的json序列化工具。如果 @DateTimeFormat
在 JSON 中不生效,可能是因为它是一个用于 Spring MVC 的注解,而不是用于 JSON 序列化和反序列化的注解。在 JSON 中,日期通常以字符串的形式表示,而不是 Date
对象。因此,如果您希望将 JSON 中的日期字符串转换为 Date
对象,您可以使用 Jackson 库中的 @JsonFormat
注解。
如果您在表单中使用 @DateTimeFormat
,它应该能够正常工作,因为 Spring MVC 会自动将表单提交的数据绑定到 Java 对象上,并使用 @DateTimeFormat
注解来格式化日期。请确保您在表单中使用的日期格式与您在 @DateTimeFormat
注解中指定的日期格式相匹配。
@JsonFormat
常见用法 @JsonFormat(pattern = "yyyy-MM-dd HH:mm
", timezone = "GMT+8")当前写法是将时间格式为yyyy-MM-dd HH:mm
格式,并且采用东八区作为时区标准@DateTimeFormat
常见用法 @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm
")当前写法是将时间格式为yyyy-MM-dd HH:mm
格式,自动使用当前地区的时区标准