Json 如何序列化scala trait play 2.3.x?
考虑以下几点: 我有一个特点Json 如何序列化scala trait play 2.3.x?,json,scala,serialization,playframework-2.0,traits,Json,Scala,Serialization,Playframework 2.0,Traits,考虑以下几点: 我有一个特点 trait Plugin {val foo:String, val bar:String} 。。和2个案例类plugOne和plugTwo case class PlugOne ( override val foo:String, override val bar:String, plugValOne:String ) extends Plugin case class PlugTwo ( override val foo:String, override va
trait Plugin {val foo:String, val bar:String}
。。和2个案例类plugOne和plugTwo
case class PlugOne ( override val foo:String, override val bar:String, plugValOne:String ) extends Plugin
case class PlugTwo ( override val foo:String, override val bar:String, plugValTwo:String ) extends Plugin
另一个案例类
case class PluginCol ( plugins:Seq[Plugin] )
。。存储一系列插件。
考虑到我的案例类PlugOne和PlugTwo都有隐式格式,我如何序列化我的PluginCol,因为它有一系列Plugin特征(没有apply/unapply方法)。
我想要实现的是将一个json版本的PluginCol写入mongoDB集合
有没有办法解决这样的问题
提前感谢
序列化
是将对象
转换为可存储并可用于重建对象的格式
插件
是一种特性
。无法创建插件
的对象。要创建Seq[Plugin]
,您将创建PlugOne
或PlugTwo
的序列
scala> PluginCol(Seq(PlugTwo("s", "x", "z"), PlugOne("a","b","c")))
res7: PluginCol = PluginCol(List(PlugTwo(s,x,z), PlugOne(a,b,c)))
scala> res7.plugins
res9: Seq[Plugin] = List(PlugTwo(s,x,z), PlugOne(a,b,c))
正如您所看到的,从上面的代码中,Seq[Plugin]
实际上包含案例类PlugOne和PlugTwo的对象
考虑到您的问题,您拥有案例类PlugOne
和PlugTwo
的所有隐式格式,序列化对象应该不会有任何问题