我正在尝试编写可以将javax.measure.unit.Unit实例序列化为JSON的代码。为此我使用Jackson对象映射器。由于自引用,对象映射器不能直接序列化单元实例,因此我存储了单元的字符串表示。
序列化时,我会做类似
的事情 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());
有谁知道如何解决这个问题?