Не удается найти неявные чтения для Coproduct - PullRequest
0 голосов
/ 07 февраля 2019

У меня следующая ситуация.

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.

Все, что я пытаюсь сделать, похоже не работает.Я что-то упускаю очевидное.

...