我正在编写一个 Spring Web 服务,默认使用 Jackson。我正在使用@JsonView 来指示我需要将哪个属性解析为我的 JSON 对象。所以,问题是:许多对象在不同的类中使用,但并非完全是它的所有属性,例如:
class Professor {
@JsonView({Views.Public.class, Views.Internal.class})
private int id;
@JsonView(Views.Internal.class)
private String name;
...
}
class Classroom {
@JsonView({Views.Public.class, Views.Internal.class})
private int id;
@JsonView(Views.Internal.class)
private String name;
...
}
class Lecture {
@JsonView(Views.Public.class)
private Professor professor;
@JsonView(Views.Public.class)
private Classroom classroom;
...
}
如果我需要两个以上的“观点”,我必须创建更多的接口/类来做到这一点?(如 Views.Professor、Views.Principal、...)这是一个真正的好习惯吗?
我想听听一些建议或替代方案来解决这个问题。我对走在正确的轨道上有点困惑。