【发布时间】:2016-10-16 10:59:09
【问题描述】:
考虑以下枚举和类:
public enum State {
OFF,
ON,
UNKNOWN
}
public class Machine {
String name;
int numCores;
State state;
public Machine(String name, int numCores, State state) {
this.name = name;
this.numCores = numCores;
this.state = state;
}
}
并考虑以下主要功能:
public static void main(String args[]) {
Machine m = new Machine("Machine 1", 8, State.OFF);
ObjectMapper mapper = new ObjectMapper();
String machineAsJsonString = mapper.writeValueAsString(m);
System.out.println(machineAsJsonString);
}
目前,这个main的输出是:
{"name" : "Machine 1", "numCores" : 8, "state" : "OFF"}
这个输出对我不利,因为我希望它不是state 的字符串"OFF",而是0,这是枚举OFF 中OFF 的序数值State。
所以我想要得到的实际结果是:
{"name" : "Machine 1", "numCores" : 8, "state" : 0}
有没有什么优雅的方法让它表现得这样?
【问题讨论】:
-
我对无注释实现的抨击。做回复。 pastebin.com/raw/Mvf9Ygq1
-
ON = 0,OFF = 1,恕我直言,这看起来不像是友好的事情......只是说;-) -
@Julien 我花了 4 年时间,但我终于采纳了你的建议并修复了它:P
标签: java json serialization enums jackson