J'ai une application scala et une classe de cas comme celui -Jouer Générique JSON Formater
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
)
Maintenant, je dois fournir une lecture implicite et écrire le format JSON pour les propriétés x, y, z pour la classe SR cas comme -
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
}
}
et ainsi de même pour Y et Z, et à l'avenir, je vais ajouter beaucoup d'autres propriétés comme x, y, z en classe SR cas et besoin de fournir les formateurs.
Alors, est-ce que je peux obtenir un formateur générique qui prendra soin de tous les types?
Quels ont déjà essayé avant cette question? – cchantep