【发布时间】:2013-07-29 10:43:49
【问题描述】:
我有类似的东西:
@Entity
@Table(name = "myEntity")
public class MyEntity {
//....
@Column(name = "content")
private byte[] content;
//....
}
问题: 我将 MyEntity 作为 JSON 字符串传递给客户端。 但是问题是我有两种客户的请求:
- 我需要传递 MyEntity with byte[] content 数组
- 我需要传递 MyEntity 没有 byte[] 内容数组
在第一种情况下我不需要 @JsonIgnore 注释,在第二种情况下 - 确实需要。
问题:
- 如何实现动态@JsonIgnore 注释?有可能吗?
- 实现延迟加载的任何替代方法?
附:据我了解,即使我用延迟加载注释标记了我的 byte[] 内容 数组,当杰克逊将 MyEntity 解析为 JSON 字符串时,它仍然会被加载。
提前谢谢你!
【问题讨论】:
-
您可以在 ObjectMapper 对象上禁用 FAIL_ON_UNKNOWN_PROPERTIES 功能。之后,ObjectMapper 应该能够反序列化带有这个属性的 JSON。
-
问题出在序列化中(当我用杰克逊序列化对象时,它会拉出所有延迟加载),但不在反序列化中
标签: json hibernate jackson lazy-loading