Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何序列化scala trait play 2.3.x?_Json_Scala_Serialization_Playframework 2.0_Traits - Fatal编程技术网

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
的所有隐式格式,序列化对象应该不会有任何问题