Is it possible to deserialize the following JSON
{
"operation": "create", // type discriminator
"value": "some text",
"source": {
"name": "source name",
"kind": "db" // type discriminator
}
}
to the following set of classes
sealed trait Source
case class DbSource(name: String) extends Source
sealed trait Operation
case class CreateOperation(value: String, source: Source) extends Operation
using Json4s without resorting to custom deserializers?