假设我有一些对象,比如具有Address对象列表的Business和具有Business的Order。
是否可以这样配置:当订单被序列化时,它从Business对象中排除地址列表,而当企业被序列化时,它包括该列表?
我正在使用ajax为RIA拉取数据,在处理订单时,我并不真正关心地址数据,但在处理业务时,我确实需要列表。
我还使用Hibernate进行持久化,因此这是一个真正的效率和性能优化。
发布于 2010-03-26 05:12:49
如果我对问题的理解正确,是的,我认为杰克逊的JSON Views会允许这样做。基本上,您将为同一类型创建两个不同的视图(配置文件),并选择其中一个用于序列化。
发布于 2010-03-24 22:57:07
您可以使用JsonIgnore Annotation在序列化时忽略地址列表,并在序列化业务时关闭ObjectMapper的SerializationConfig中的注释的使用。当然,这意味着您可能使用的其他注释也会被忽略。不是完美的,但你可能会找到一个更好的解决方案,希望它(显然)有所帮助。
ObjectMapper mapper = new ObjectMapper();
mapper.getSerializationConfig().disable(Feature.USE_ANNOTATIONS);发布于 2013-04-18 17:41:54
是的,你能做到。您需要做的就是在业务对象中将地址列表声明为瞬态属性。
然后将以下代码添加到您的jsonConfig中:
jsonConfig.setIgnoreTransientFields(true);https://stackoverflow.com/questions/2507768
复制相似问题