我有一些需要使用隐式序列化和反序列化 json 的 scala 代码。
我们以前通过放置这些隐式语句(用假人简化)来实现一些工作:
(in some class SomeClass1)
implicit val some1format = Json.format[SomeItem1]
implicit val some2format = Json.format[SomeItem2]
...
全部作为类级别的变量。然后类中的任何方法都可以从 Json 转换得很好。
但是,我们正在尝试将这些格式的隐式定义移动到单独的对象中。
所以我们创建了一个对象(例如:SomeFormatters),它只包含这些隐式:
object SomeFormatters {
implicit val some1format = Json.format[SomeItem1]
implicit val some2format = Json.format[SomeItem2]
}
当我尝试将此对象导入 SomeClass1 时,我收到一个编译错误,指出没有为 SomeItem1 或 SomeItem2 找到反序列化器,即使我正在导入 SomeFormatters。(IDE 说 SomeFormatters 的导入没有被使用,所以我已经知道有些东西不对劲。)
让 SomeClass1 了解 SomeFormatters 中的隐式定义的正确方法是什么?