我有一个模特。
public class Model {
@JsonProperty("model_id")
private Integer id;
@JsonView(face.Test.class)
@JsonProperty("model_name")
private String name;
@JsonProperty("model_level")
private Byte level;
@JsonView(face.New.class)
@JsonProperty("model_score")
private Byte score;
@JsonView(face.Test.Tester.class)
@JsonProperty("model_community")
private Long community;
//getter and setters
}
您可以看到我的id
和level
字段将包含在从此模型创建的所有JSON中。
现在我想在所有JSON(从这个模型中创建)中添加示例字段级别,除了一个。
有类似@JsonView(!face.Example.class)
的内容吗?如果不是,那么这个案例的最佳解决方案是什么?
非常感谢
答案 0 :(得分:1)
我相信您需要使用视图类继承来实现此目的。
public class face {
public static class BaseView {}
public static class Test extends BaseView {}
public static class New extends BaseView {}
public static class Example {} // no parent
}
所以:
public class Model {
// included in all views
private Integer id;
// only in Test view
@JsonView(face.Test.class)
private String name;
// included in BaseView and its children (ie not Example)
@JsonView(face.BaseView.class)
private Byte level;
// ...
}
大概你有一个逻辑层次的视图,它不仅适用于一个字段。