我有运营商,它们都有一个名称和价格,我希望在上面进行模式匹配,所以我将它们写为案例类:
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