Я понимаю, что если у меня есть:
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)
}
где, возможно, мне нужно было добавить некоторый матчи, чтобы проверить, какой тип является Animal, чтобы, если бы его лицо я направил его человеку, но ничего не нашел... читал https://github.com/spray/spray-json и не понимают, как это сделать.
так как я могу сериализовать набор
trait Animal
case class Person(name: String) extends Animal
с помощью json spray?