案例类(作为枚举)和Json.reads

时间:2019-02-21 18:04:18

标签: scala playframework play-framework-2.7

我有运营商,他们都有名称和价格 我想在上面进行模式匹配,所以我将它们写为case类:

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 

0 个答案:

没有答案