是否有可能忽略 JSON 序列化(用于 Web 显示)而不是 mongo(内部序列化)的字段?
到目前为止,我已经尝试了所有这些方法,但是 Mongo 也忽略了字段,或者在出现一些变化的情况下两者都没有被忽略
是否有可能忽略 JSON 序列化(用于 Web 显示)而不是 mongo(内部序列化)的字段?
到目前为止,我已经尝试了所有这些方法,但是 Mongo 也忽略了字段,或者在出现一些变化的情况下两者都没有被忽略
好的,我终于解决了这个问题。
objectMapper.writerWithView(Views.Public.class).writeValueAsString(lo));
writeValueUsingView 来自另一个版本的 Jackson,所以它不起作用
可以通过使用 @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);
你可以在这里阅读更多关于它的信息。