我有一個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