Предположим, у меня есть несколько типов идентификаторов, определенных следующим образом.
sealed trait Id {
val value: String
}
case class IdA(value: String) extends Id
case class IdB(value: String) extends Id
case class IdC(value: String) extends Id
Эти классы должны быть декодированы из следующего JSON и закодированы в него.
{
"id: "some-id"
}
Как я могу определить общий декодер / кодировщик для идентификатора,
case class A(id: IdA, name: String, count: Int)
case class B(id: IdB, name: String, count: Int)
case class C(id: IdC, name: String, count: Int)
чтобы вышеперечисленные классы можно было декодировать и закодировать в JSON ниже?
{
"id" : "some-id",
"name": "some-name",
"count": 2
}
если возможно, я хочу, чтобы поле id было гибким как для декодера, так и для кодировщика, то есть id может быть id-x в одном случае и id-y в другом.
Codec
для признакаId
, определяющий, как он должен работать. - person Luis Miguel Mejía Suárez   schedule 14.02.2021