gpt4 book ai didi

java - Jackson:从一个 JsonView 类中排除字段

转载 作者:行者123 更新时间:2023-11-30 06:37:13 25 4
gpt4 key购买 nike

我有一个模型。

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
}

如您所见,我的 idlevel 字段将包含在从此模型创建的所有 JSON 中。

现在,我想将字段级别放入除一个 JSON 之外的所有 JSON(从该模型创建的)中。

有类似 @JsonView(!face.Example.class) 的东西吗?如果不是,这种情况的最佳解决方案是什么?

非常感谢

最佳答案

我相信您需要使用 View 类继承来完成此任务。

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;

// ...

}

大概您有一个 View 的逻辑层次结构,它不仅仅适用于一个字段。

关于java - Jackson:从一个 JsonView 类中排除字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45006932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com