Джексон: сериализация и десериализация значений перечислений как целых чисел ⇐ JAVA
Джексон: сериализация и десериализация значений перечислений как целых чисел
Рассмотрим следующее перечисление и класс:
public enum State { ВЫКЛЮЧЕННЫЙ, НА, НЕИЗВЕСТНЫЙ } машина публичного класса { Строковое имя; число ядер; Государство государство; public Machine (имя строки, int numCores, состояние состояния) { это.имя = имя; this.numCores = numCores; this.state = состояние; } } И рассмотрим следующую основную функцию:
public static void main(String args[]) { Машина m = новая машина("Машина 1", 8, Состояние.ВЫКЛ); Сопоставитель ObjectMapper = новый ObjectMapper(); Строка MachineAsJsonString = Mapper.writeValueAsString(m); System.out.println(machineAsJsonString); } В настоящее время вывод этого main:
{"name": "Машина 1", "numCores": 8, "state": "OFF"} Этот вывод меня не устраивает, так как вместо строки "OFF" для state я бы хотел, чтобы она была 0 , что является порядковым значением OFF в перечислении State.
Итак, фактический результат, который я хочу получить:
{"имя": "Машина 1", "numCores": 8, "состояние": 0} Есть ли какой-нибудь элегантный способ заставить его вести себя таким образом?
Рассмотрим следующее перечисление и класс:
public enum State { ВЫКЛЮЧЕННЫЙ, НА, НЕИЗВЕСТНЫЙ } машина публичного класса { Строковое имя; число ядер; Государство государство; public Machine (имя строки, int numCores, состояние состояния) { это.имя = имя; this.numCores = numCores; this.state = состояние; } } И рассмотрим следующую основную функцию:
public static void main(String args[]) { Машина m = новая машина("Машина 1", 8, Состояние.ВЫКЛ); Сопоставитель ObjectMapper = новый ObjectMapper(); Строка MachineAsJsonString = Mapper.writeValueAsString(m); System.out.println(machineAsJsonString); } В настоящее время вывод этого main:
{"name": "Машина 1", "numCores": 8, "state": "OFF"} Этот вывод меня не устраивает, так как вместо строки "OFF" для state я бы хотел, чтобы она была 0 , что является порядковым значением OFF в перечислении State.
Итак, фактический результат, который я хочу получить:
{"имя": "Машина 1", "numCores": 8, "состояние": 0} Есть ли какой-нибудь элегантный способ заставить его вести себя таким образом?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение