我有一个场景以 json 形式返回状态列表,这些列表可在状态枚举中使用,我的枚举如下所示
示例:-
public enum Status {
CREATED("100", "CREATED"), UPDATED("200", "UPDATED"), DELETED("300", "DELETED");
private final String id;
private final String name;
private Status(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
@Override
public String toString() {
return name;
}
public List<Map<String, String>> lookup() {
List<Map<String, String>> list = new ArrayList<>();
for (Status s : values()) {
Map<String, String> map = new HashMap<>();
map.put("ID", s.getId());
map.put("name", s.getName());
list.add(map);
}
return list;
}
}
需要这样的输出:
[{id:"100",name:"已创建"},{id:"200",name:"已更新"}...] 我已经用映射列表编写了查找方法来构建响应,是否有更好的方法或实用程序将枚举转换为具有枚举中可用的所有属性的对象。
有没有更好的方法来做到这一点?
最佳答案
您可以使用 Jackson 转换为 JSON。只需包含 @JsonFormat(shape = Shape.OBJECT) 在枚举声明中。这应该会给你结果。
关于java - 如何从 Java 中的 Enum 值返回具有所有属性的 Enum 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52621813/