【发布时间】:2020-08-10 17:29:10
【问题描述】:
我创建了一个枚举,它也存储了一个值
import com.fasterxml.jackson.annotation.JsonValue;
public enum AnimalType {
DOG("dog"),
CAT("cat"),
private final String displayName;
AnimalType(String displayName) {
this.displayName = displayName;
}
@JsonValue
public String getDisplayName() {
return displayName;
}
@Override
public String toString() {
return displayName;
}
}
我以这种方式创建枚举,因为用户会给我输入 dog 或 cat。枚举值正在正确序列化和反序列化。
但是swagger.json 显示DOG 和CAT 代替dog 和cat。我不希望用户看到内部枚举名称,并且由于用户将使用架构,因此我想在架构中显示 dog 或 cat。
"type" : {
"type" : "string",
"enum" : [ "DOG", "CAT"]
},
我尝试过使用@JsonProperty 注释(如@JsonProperty("dog")),但这并没有解决问题。你能指导我如何解决这个问题吗?
版本: 招摇:2.0 杰克逊:2.7.9
【问题讨论】:
标签: java enums jackson swagger