Классы падежа (как перечисления) и Json.reads - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть Carrier, у них всех есть имя и цена, которые я хотел сопоставить с образцом, поэтому я записал их как классы дел:

sealed abstract class Carrier( val name: String = "", val price: Double = 0, val img: Option[String] = None)

case object FREE extends Carrier("Frais de ports offerts via La Poste ou GLS", 0)

case class GLS(override val price: Double) extends Carrier("GLS", price)

case class LA_POSTE(override val price: Double) extends Carrier("Lettre ou colis (via La Poste)", price, Some("laposte-logo.png"))
...

Но теперь мне нужно «jsonify» их.Должен ли я написать форматер для каждого носителя?Или есть способ написать уникальный форматер в классе Carrier?

Я пробовал это:

object Carrier {
  implicit val fmtCarrier: Format[Carrier] = Json.format[Carrier]
}

Но он не компилируется, он говорит:

No instance of Reads is available for models.order.FREE in the implicit scope 
...