У меня следующая ситуация.
import shapeless.{:+:, CNil}
import julienrf.json.derived.{DerivedOWrites, DerivedReads, NameAdapter}
case class A(i : Int)
case class B(s : String)
object Event {
type AllEvent = A :+: B :+: CNil
implicit def allFormats[T](implicit dr: DerivedReads[T], dw: DerivedOWrites[T]): OFormat[T] = derived.oformat[T](NameAdapter.snakeCase)
}
case class C(id : String, event : Event.AllEvent)
и я хочу иметь возможность проанализировать следующий JSON в C
import play.api.libs.json.{Json, OFormat}
import Event.allFormats
val json = Json.parse(
"""{
"id" : "id",
"event":{
"i" : 1
}
}"""
).as[C]
Однако я получаю сообщение об ошибке Error: No Json deserializer found for type C. Try to implement an implicit Reads or Format for this type.
).as[C]
Появляетсяпытаться разрешить чтение для A :+: B :+: CNil
.
Все, что я пытаюсь сделать, похоже не работает.Я что-то упускаю очевидное.