Я пытаюсь написать код, который может сериализовать экземпляры javax.measure.unit.Unit в JSON. Для этого я использую объектный картограф Джексона. Объектный преобразователь не может напрямую сериализовать экземпляры модуля из-за собственной ссылки, поэтому вместо этого я сохраняю строковое представление модуля.
Во время сериализации я делаю что-то вроде
String jsonString = serialize(unit.toString());
При десериализации я делаю:
String unitString = deserialize(jsonString);
Unit<?> unit = Unit.valueOf(unitString);
Это работает для большинства основных модулей, но не для чего-то вроде, скажем, «NonSI.Byte.times (1024)». По сути, следующий код генерирует исключение ParseException:
Unit.valueOf(NonSI.BYTE.times(1024).toString());
Кто-нибудь знает, как это решить?