加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Play Framework Scala格式大JSON(找不到unapply或unapplySeq函数

发布时间:2020-12-16 18:47:28 所属栏目:安全 来源:网络整理
导读:我需要在我的服务器上接收一个大的 JSON(超过22个字段). 我有一个包含很多字段的案例类: case class Filters(objectType: Option[String] = None,deal: Option[String] = None,roomsCount: Option[String] = None,region: Option[Int] = None,district: Opt
我需要在我的服务器上接收一个大的 JSON(超过22个字段).
我有一个包含很多字段的案例类:

case class Filters(objectType: Option[String] = None,deal: Option[String] = None,roomsCount: Option[String] = None,region: Option[Int] = None,district: Option[Int] = None,direction: Option[Int] = None
     ...
)

和控制器中的JSON格式功能:

隐式val filtersFormat = Json.format [Filters]

在编译时我有错误:

[error] WebSockets.scala:18: No unapply or unapplySeq function found
[error]   implicit val filtersFormat = Json.format[Filters]
[error]                                          ^

有没有办法解决问题而不会将JSON破坏为小部件?

解决方法

我是这样做的:

case class Filters(part1: Part1,part2: Part2,...)

case class Part1(
    field1: Field1,field2: Field2,...
    field10: Field10,)

object Part1 {
    implicit val part1Format = Json.format[Part1]
}

...

object Filters {
    implicit val filtersReads = (
        JsPath.read[Part1] and
        JsPath.read[Part2] and
        ...
    )(Filters.apply _)

    implicit val filtersWrites = (
        JsPath.write[Part1] and
        JsPath.write[Part2] and
        ...
    )(unlift(Filters.unapply))
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读