Considérons l'enum et la classe suivants :
public enum State {
ON,
OFF,
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;
}
}
Et considérez la fonction principale suivante :
public static void main(String args[]) {
Machine m = new Machine("Machine 1", 8, OFF);
ObjectMapper mapper = new ObjectMapper();
String machineAsJsonString = mapper.writeValueAsString(m);
System.out.println(machineAsJsonString);
}
Actuellement, la sortie de ce principal est :
{"name" : "Machine 1", "numCores" : 8, "state" : "OFF"}
Cette sortie n'est pas bonne pour moi, car au lieu de la chaîne de caractères "OFF"
para state
J'aimerais que ce soit 1
qui est la valeur ordinale de OFF
dans l'enum State
.
Donc le résultat réel que je veux obtenir est :
{"name" : "Machine 1", "numCores" : 8, "state" : 1}
Existe-t-il un moyen élégant de le faire se comporter de cette façon ?