如何更改从JSON模式生成的POJO的格式?

时间:2019-10-25 08:41:08

标签: java json jackson

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

1 个答案:

答案 0 :(得分:0)

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

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

 private final String value;

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

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

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