@JsonIgnore和@JsonFormat同时使用不生效
时间: 2023-10-18 09:22:34 浏览: 154
@JsonFormat的使用jackson-annotations
4星 · 用户满意度95%
如果同时使用了 `@JsonIgnore` 和 `@JsonFormat`,那么 `@JsonIgnore` 会覆盖 `@JsonFormat` 的设置,导致 `@JsonFormat` 不起作用。
这是因为 `@JsonIgnore` 用于忽略某个属性的序列化或反序列化,而 `@JsonFormat` 用于指定某个属性的序列化或反序列化格式。如果一个属性被 `@JsonIgnore` 忽略了,那么 `@JsonFormat` 就没有机会去对它进行格式化了。
如果需要同时使用 `@JsonIgnore` 和 `@JsonFormat`,可以考虑使用 `@JsonProperty` 来替换 `@JsonIgnore`,并且在 `@JsonProperty` 中设置 `access` 属性为 `Access.READ_ONLY` 或 `Access.WRITE_ONLY`,来指定属性的序列化或反序列化权限。例如:
```
@JsonProperty(access = Access.READ_ONLY)
@JsonFormat(pattern = "yyyy-MM-dd")
private Date birthDate;
```
这样就可以同时使用 `@JsonIgnore` 和 `@JsonFormat` 了。
阅读全文