gpt4 book ai didi

json - 让 jackson 忽略序列化为 json 时延迟初始化的字段

转载 作者:行者123 更新时间:2023-12-04 19:10:46 25 4
gpt4 key购买 nike

我使用 Spring 并且正在创建 REST 服务。

这是我的 Controller 的一部分:

@RequestMapping("/get")
public @ResponseBody Person getPerson() {
Person person = personRepository.findOne(1L);
//(1) person.setRoles(null);
return person;
}

该人的角色是惰性初始化的,当时不需要。当 (1) 被注释掉时,一切都会失败,并显示

org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: failed to lazily initialize a collection of role: no.something.project.Person.roles, could not initialize proxy - no Session etc.



我可以通过执行 (1) 来解决这个问题,手动将其设置为 null(或其他值),因此当 Jackson 尝试序列化我的对象时它不会失败。

但是,这很烦人,必须在不同的地方多次完成。我想要一些简单的解决方案,在未初始化时忽略那些延迟初始化的字段,或者只是将它们设置为 null。

注意:对象上的值上的 @JsonIgnore 不是解决方案,因为在其他情况下我希望包含这些值。

最佳答案

查询 Jackson ViewsJackson Filters (我记得这两者都由 Spring 支持)。

此外,要使用惰性字段(如果不排除它们),您需要 - jackson-module-hibernate

关于json - 让 jackson 忽略序列化为 json 时延迟初始化的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15395018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com