【发布时间】:2018-02-10 20:34:25
【问题描述】:
我有一个 scala 应用程序,并且有一个类似的案例类 -
case class SR(
systemId: Option[String] = None,
x: Map[Timestamp, CaseClass1] = Map.empty,
y: Map[Timestamp, CaseClass2] = Map.empty,
y: Map[Timestamp, CaseClass3] = Map.empty
)
现在我必须为 SR 案例类的属性 x、y、z 提供隐式读写 JSON 格式,例如 -
implicit val mapCMPFormat = new Format[Map[Timestamp, CaseClass1]] {
def writes(obj: Map[Timestamp, CaseClass1]): JsValue =
JsArray(obj.values.toSeq.map(Json.toJson(_)))
def reads(jv: JsValue): JsResult[Map[Timestamp, CaseClass1]] = jv.validate[scala.collection.Seq[CaseClass1]] match {
case JsSuccess(objs, path) => JsSuccess(objs.map(obj => obj.dataDate.get -> obj).toMap, path)
case err: JsError => err
}
}
Y 和 Z 以此类推,以后我会在 SR 案例类中添加更多属性,例如 x,y,z,然后需要提供格式器。
那么我可以得到一些可以处理所有类型的通用格式化程序吗?
【问题讨论】:
-
在这个问题之前已经尝试过什么?
标签: json scala playframework libs lagom