我有一个Scala的应用程序,有一个案例类像 -通用播放JSON格式器
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
)
现在我必须提供一个隐含的读取和写入JSON格式的属性X,Y,Z为SR案例类像 -
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,并且在将来,我会加入像X,Y,Z在SR案例类更多的属性,然后需要提供formators。
因此,我可以得到一些将照顾所有类型的通用Formater?
什么这个问题之前已经尝试过? – cchantep