【发布时间】:2013-03-01 23:03:20
【问题描述】:
我使用 Spring 并正在创建一个 REST 服务。
这是我的控制器的一部分:
@RequestMapping("/get")
public @ResponseBody Person getPerson() {
Person person = personRepository.findOne(1L);
//(1) person.setRoles(null);
return person;
}
此人的角色是惰性初始化的,当时不需要。当 (1) 被注释掉时,一切都会失败,并带有
org.springframework.http.converter.HttpMessageNotWritableException: 无法写入 JSON:未能延迟初始化集合 角色:no.something.project.Person.roles,无法初始化代理 - 没有会话等。
我可以通过执行 (1) 来解决这个问题,手动将其设置为 null(或其他值),因此当 Jackson 尝试序列化我的对象时它不会失败。
但是,这很烦人,必须在不同的地方多次完成。我想要一些简单的解决方案,在未初始化时忽略那些延迟初始化的字段,或者将它们设置为 null。
注意:@JsonIgnore 对象上的值不是解决方案,因为在其他情况下我希望包含这些值。
【问题讨论】:
标签: json spring spring-mvc jackson