Jackson:将枚举值序列化和反序列化为整数。
Jackson:将枚举值序列化和反序列化为整数。
考虑以下枚举和类:
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; } }
并考虑以下main函数:
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`的值是枚举`State`中`OFF`的序数值`0`,而不是字符串`"OFF"`。
因此,我想要得到的实际结果是:
{"name" : "Machine 1", "numCores" : 8, "state" : 0}
有没有一种优雅的方法可以实现这种行为?