我在生成下游调用所需的正确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