在 Json.format 上使用复杂对象作为另一个对象的属性时出现错误。
我有两节课:RoleDTO and 电子邮件邀请DTO. 电子邮件邀请DTO has a RoleDTO。所以,我宣布:
case class RoleDTO(id:Option[Long] = None, roleType:Int, userID:Long, fromHousingUnitID:Option[Long] = None, isAdmin:Option[Boolean] = None, fromResidentUserID:Option[Long] = None, documentNumber:Option[String] = None, fromCondoID:Option[Long] = None)
object RoleDTO { val roleFormat = Json.format[RoleDTO] }
case class EmailInvitationDTO(firstName:String, lastName:String, email:String, role:RoleDTO)
object EmailInvitationDTO{ val emailInvitationFormat = Json.format[EmailInvitationDTO] }
我收到错误:没有隐式格式RoleDTO可用的。即使我声明角色格式前面一行中的变量电子邮件邀请函格式:
object EmailInvitationDTO {
val roleFormat = Json.format[RoleDTO]
val emailInvitationFormat = Json.format[EmailInvitationDTO]
}
有人知道缺少什么吗?谢谢。
您需要包含一个隐式roleFormat
在你的EmailInvitationDTO
对象声明。这Json.format
宏在编译时查找隐式 Json 格式,否则它将不知道如何读取/写入RoleDTO
在你的EmailInvitationDTO
.
因此,在创建之前,您需要在范围内添加以下行emailInvitationFormat
:
implicit val roleFormat = Json.format[RoleDTO]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)