【问题标题】:Scala play!2 create Json formatter for a class in external libraryScala play!2 为外部库中的类创建 Json 格式化程序
【发布时间】:2017-05-04 07:43:55
【问题描述】:

我使用https://github.com/DanielaSfregola/twitter4s,我需要读取和解析twitter4s在Json中提供的User类。

所以我尝试创建以下序列化程序:

object User {
    implicit val twitterUser: OFormat[User] = Json.format[User]
}

但是这个返回No unapply or unapplySeq function found

如何为这个外部类创建正确的序列化程序?

【问题讨论】:

标签: json scala playframework


【解决方案1】:

您的问题是 User 有很多字段(即超过 22 个)。在 scala 2.10 中,案例类的字段数量存在限制。这在 2.11 中消失了,但在 Play! 的 Json.format 宏中没有,因为它们继续支持 2.10。

但是,您可以使用 Json Extra,它对宏有不同的实现,并允许您超过 22 个字段。

如果你不喜欢这样(宏有一些限制,比如不输出OFormat),你也可以将User类拆分为两个(或更多)类,字段少于22个,并且从这些构建初始的,为Format 提供更简单(更安全)的实现,如果您手动完成整个操作,您将不得不这样做。

您也可以阅读this question,以获得进一步的解释。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多