[英]How do I attach the enum value to an object, instead of the enum name?
所以我的标题可能不是最好的,但我认为我可以更好地在代码中显示我想要实现的目标。 我正在使用 Spring Boot、JPA 和 React 做事。
所以假设我有这个枚举:
public enum MyEnum {
FIRST_ENUM("First"),
SECOND_ENUM("Second")
}
还有一个包含以下枚举之一的 class :
public class MyClass {
private int id;
private MyEnum myEnum;
}
当我将此 class 的实例转换为 JSON 时(因此我可以将它作为 JSON 传递给 React),这就是我得到的:
{
"id": 1,
"myEnum": "FIRST_ENUM"
}
但是我希望它改为使用该值(我知道我可以手动创建 JSONObject 实例,但是有没有办法自动使用该值来代替?):
{
"id": 1,
"myEnum": "First"
}
public enum MyEnum {
FIRST_ENUM("First"),
SECOND_ENUM("Second");
@JsonValue
private final String name;
MyEnum(String name) {
this.name = name;
}
@JsonCreator
public static MyEnum fromString(String string) {
...//find enum constant by name
}
}
如果自定义name
的目的是表示 JSON 中的枚举值,则另一个选项是使用@JsonProperty
作为枚举值:
public enum MyEnum {
@JsonProperty("First") FIRST_ENUM,
@JsonProperty("Second") SECOND_ENUM;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.