Scala 为超过22个字段的case类播放json合并格式
我正在尝试将格式拆分为多个元组,以便它可以处理case类中的22个以上字段。但是,我得到一个错误值,它不是play.api.libs.json.Format“的成员。如何合并案例类的多种格式Scala 为超过22个字段的case类播放json合并格式,scala,playframework,playframework-2.3,Scala,Playframework,Playframework 2.3,我正在尝试将格式拆分为多个元组,以便它可以处理case类中的22个以上字段。但是,我得到一个错误值,它不是play.api.libs.json.Format“的成员。如何合并案例类的多种格式 val fields1to2: Format[(Int, String)] = ( (__ \ "a").format[Int] and (__ \ "b").format[String] ).tupled val fields3to4: Format[(Boolean, List[Int])]
val fields1to2: Format[(Int, String)] = (
(__ \ "a").format[Int] and
(__ \ "b").format[String]
).tupled
val fields3to4: Format[(Boolean, List[Int])] = (
(__ \ "c").format[Boolean] and
(__ \ "d").format[List[Int]]
).tupled
implicit val hugeCaseClassReads: Format[Huge] = (
fields1to2 and fields3to4 // "value and is not a member of play.api.libs.json.Format"
) {
case ((a, b), (c, d)) =>
Huge(a, b, c, d)
}
添加这些导入解决了我的问题。在您的情况下,只需导入第一个就可以解决问题
import play.api.libs.functional.syntax._
import play.api.libs.json.{Json, Reads, _}
如果您不限于仅使用Play JSON,请尝试使用该库:
但是一个更方便、更安全、更高效的选项是使用-它内置了对具有大量字段的案例类的支持。您好,您有机会做您想做的吗?
import ai.x.play.json.Jsonx
implicit val hugeCaseClassReads: Format[Huge] = Jsonx.formatCaseClass