Marshalling javax.measure.unit.Unit экземпляры, использующие строки - PullRequest
2 голосов
/ 14 марта 2012

Я пытаюсь написать код, который может сериализовать экземпляры 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());

Кто-нибудь знает, как это решить?

...