我明白,如果我有:
case class Person(name: String)
我可以用
object PersonJsonImplicits extends DefaultJsonProtocol {
implicit val impPerson = jsonFormat1(Person)
}
并因此将其序列化:
import com.example.PersonJsonImplicits._
import spray.json._
new Person("somename").toJson
但是如果我有
trait Animal
case class Person(name: String) extends Animal
我的代码中有某个地方
val animal = ???
我需要序列化它,我想使用 json spray
我应该添加哪个序列化程序我希望有类似的东西:
object AnimalJsonImplicits extends DefaultJsonProtocol {
implicit val impAnimal = jsonFormat???(Animal)
}
也许我需要添加一些匹配器来检查什么类型是动物,这样如果它是一个人,我会将它定向到人但什么也没找到......正在阅读https://github.com/spray/spray-json 而且不明白该怎么做..
那么我怎样才能序列化这组
trait Animal
case class Person(name: String) extends Animal
用json喷雾?