java Swagger架构未显示枚举的自定义值
我创建了一个枚举,它还存储一个值
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;
}
}
我以这种方式创建enum,因为用户将给我输入dog
或cat
。枚举值正在正确序列化和反序列化
但是swagger.json
显示DOG
和CAT
代替了dog
和cat
。我不想让用户看到内部枚举名,因为用户将使用模式,所以我想在模式中显示dog
或cat
"type" : {
"type" : "string",
"enum" : [ "DOG", "CAT"]
},
我曾经尝试过使用@JsonProperty
注释(比如@JsonProperty("dog")
),但这并没有解决问题。你能指导我如何解决这个问题吗
版本: 大摇大摆:2.0 杰克逊:2.7.9
# 1 楼答案
我尝试了各种各样的方法来让它工作,比如
或者使用@sercheo_87建议的
@JsonCreator
。但是架构没有显示所需的值我发现这是swagger-core中的一个bug。更新版本的《大摇大摆》对我很有帮助。此外,他们正在将更改反向移植到此版本
# 2 楼答案
使用