我在生成下游调用所需的正确POJO时遇到问题。枚举“ abc”生成为“ ABC”。但是,枚举“ UVwxYZ”生成为UV_WX_YZ,而我的要求是将其生成为“ UVWXYZ”。我目前正在使用JCodeModel生成POJO。我无法将枚举“ UVwxYZ”更改为“ uvwxyz”或“ UVWXYZ”,因为该模式已具有依赖项。

这是模式片段:

{
    "repositoryType": {
        "type": "string",
        "enum": [
            "ABC",
            "UVwxYZ"
        ]
    }
}


这在生成POJO时显示为:

ABC("ABC"),
UV_WX_YZ("UVwxYz");

最佳答案

您可以在您的字段的getter上添加@JsonValue

enum SOEnum {
 ABC("ABC"),
 UV_WX_YZ("UVwxYz");

 private final String value;

 @JsonValue
 public String getValue() {
   return value;
 }
}


如果枚举与杰克逊一起用于序列化,则结果将为"ABC", "UVwxYz"

您可以使用吸气剂来转换结果,例如将toUpperCase()添加到value

08-17 02:00