【发布时间】:2017-12-25 21:07:36
【问题描述】:
我的案例类如下所示:
case class Person(personalInfo: PersonalInfo, bankInfo: BankInfo)
case class PersonalInfo(fname: String, lname: String)
case class BankInfo(atmCode: Int, creditCard: CreditCard)
case class CreditCard(number: Int, experationDate: String)
为了能够在我的控制器中找到一个人,我为 person 添加了 serealizer:
object PersonSerealizer {
implicit val PersonalInfoFormat: OFormat[PersonalInfo] = Json.format[PersonalInfo]
implicit val CreditCardFormat: OFormat[CreditCard] = Json.format[CreditCard]
implicit val BankInfoFormat: OFormat[BankInfo] = Json.format[BankInfo]
implicit val PersonFormat: OFormat[Person] = Json.format[Person]
}
在我的控制器中,我有一个超级简单的操作,如下所示:
我
mport serializers.PersonSerealizer._
def getBrothers(): Action[JsValue] = Action.async(parse.json) { request =>
request.body.validate[Person] match {
case JsSuccess(person, _) =>
brothersService.getBrothers(person) // this returns a List[Person]
.map(res => Future{Ok(res)})
case JsError(errors) => Future(BadRequest("Errors! " + errors.mkString))
}
}
但我收到此错误:
错误:(23, 81) 找不到类的 unapply 或 unapplySeq 函数 BankInfo:/隐式val BankInfoFormat: OFormat[BankInfo] = Json.format[BankInfo]
有些东西很奇怪……据我所知它应该可以工作
【问题讨论】:
-
这意味着问题出在代码
implicit val RouterInvoiceDataFormat: OFormat[BankInfo] = Json.format[BankInfo]中的其他地方。与您在此处显示的代码无关。您需要在此行所在的任何位置导入 BankInfo 序列化程序。
标签: scala playframework playframework-2.0