在
aeson.Types.ToJSON
,已经有一个电话instances for ToJSON (Ratio Integer)
但它在 JSON 中显示类似 ("A" % "B") 的数字,我想在我的代码中的某个位置制作一个自定义版本(类似于浮点数字):
instance ToJSON (Ratio Integer) where
toJSON r = String $ pack $ show $ (numerator r) / (denominator r)
然后 GHC 告诉我它重叠了,有什么办法可以覆盖
Data.Aeson.Typtes.ToJSON
中的 Ratio Integer
吗?
谢谢你
你不需要,通常你会引入一个“信号接口”,比如:
newtype MyRatio = MyRatio (Ratio Integer)
instance ToJSON MyRatio where
toJSON (MyRatio r) = String $ pack $ show $ (numerator r) / (denominator r)