我当前正在使用一个库,该库包含一堆表示物理值(例如功率,电压,频率等)的案例类。这些类本质上是Double
+一个单位(例如123.45瓦)。这些案例类具有默认的构造函数,该构造函数采用Double
,然后采用最常用的单位-瓦特表示功率,赫兹表示频率,等等。
现在,我正在与一个外部API集成,该API公开这些值,但是选择以其他单位(例如,用mHz代替Hz表示频率)来表达它们。
所以我写了一堆CustomSerializer
,它们使用正确的单位进行反序列化。
我不知道是否有可能让JSON4S实际使用它们-因为它总是更喜欢使用默认的case类构造函数,这意味着我用错误的单位得到了值。
到目前为止,我发现的唯一解决方法是使用transformField
并将值相除/相乘,以将其以默认构造函数的正确单位显示,但这不是很优雅或直观。
是否有办法使JSON4S优先于自定义序列化程序,或为某些字段显式配置一个(类似于杰克逊的@JsonSerialize
和@JsonDeserialize
注释)?