首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以将Jackson-Json Mapper配置为根据序列化的对象排除属性吗?

可以将Jackson-Json Mapper配置为根据序列化的对象排除属性吗?
EN

Stack Overflow用户
提问于 2010-03-24 20:57:10
回答 4查看 13K关注 0票数 7

假设我有一些对象,比如具有Address对象列表的Business和具有Business的Order。

是否可以这样配置:当订单被序列化时,它从Business对象中排除地址列表,而当企业被序列化时,它包括该列表?

我正在使用ajax为RIA拉取数据,在处理订单时,我并不真正关心地址数据,但在处理业务时,我确实需要列表。

我还使用Hibernate进行持久化,因此这是一个真正的效率和性能优化。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-03-26 05:12:49

如果我对问题的理解正确,是的,我认为杰克逊的JSON Views会允许这样做。基本上,您将为同一类型创建两个不同的视图(配置文件),并选择其中一个用于序列化。

票数 8
EN

Stack Overflow用户

发布于 2010-03-24 22:57:07

您可以使用JsonIgnore Annotation在序列化时忽略地址列表,并在序列化业务时关闭ObjectMapper的SerializationConfig中的注释的使用。当然,这意味着您可能使用的其他注释也会被忽略。不是完美的,但你可能会找到一个更好的解决方案,希望它(显然)有所帮助。

代码语言:javascript
复制
ObjectMapper mapper = new ObjectMapper();
mapper.getSerializationConfig().disable(Feature.USE_ANNOTATIONS);
票数 5
EN

Stack Overflow用户

发布于 2013-04-18 17:41:54

是的,你能做到。您需要做的就是在业务对象中将地址列表声明为瞬态属性。

然后将以下代码添加到您的jsonConfig中:

代码语言:javascript
复制
jsonConfig.setIgnoreTransientFields(true);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2507768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档