忽略具有JSON序列化注释的字段,但不忽略MongoJack中的Mongo

时间:2014-03-21 10:19:35

标签: mongo-jackson-mapper

是否有可能忽略JSON序列化(用于Web显示)的字段而不用于mongo(内部序列化)?

到目前为止,我已尝试过所有这些方法,但Mongo也忽略了字段,或者在某些变化的情况下都没有忽略

Jackson: how to prevent field serialization

2 个答案:

答案 0 :(得分:1)

好的,我终于解决了这个问题。

objectMapper.writerWithView(Views.Public.class).writeValueAsString(lo)); 

writeValueUsingView来自Jackson的另一个版本,所以它没有工作

答案 1 :(得分:0)

使用@JsonView注释可以解决web / mongo的自定义序列化,请尝试以下几行:

class Views {
    static class OnAllViews {}
    static class OnlySomeViews extends OnAllViews {}
    ...
}

public class Thing {
    @JsonView(Views.OnAllViews.class) Integer id;
    @JsonView(Views.OnlySomeViews.class) String name;
}

然后您可以通过writeValueUsingView方法调用适当的序列化级别。

objectMapper.writeValueUsingView(out, beanInstance, ViewsPublic.class);

您可以详细了解here