使用Json.format没有MyClass的隐式格式
在Json.format上使用复杂对象作为另一个对象的属性时,我遇到了一个错误 我有两门课:RoleDTO和emailinvitationto电子邮件邀请收件人有一个角色。因此,我宣布:使用Json.format没有MyClass的隐式格式,json,scala,playframework-2.0,implicit,Json,Scala,Playframework 2.0,Implicit,在Json.format上使用复杂对象作为另一个对象的属性时,我遇到了一个错误 我有两门课:RoleDTO和emailinvitationto电子邮件邀请收件人有一个角色。因此,我宣布: case class RoleDTO(id:Option[Long] = None, roleType:Int, userID:Long, fromHousingUnitID:Option[Long] = None, isAdmin:Option[Boolean] = None, fromResidentUse
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没有隐式格式可用。即使我在电子邮件邀请格式之前的一行中声明了roleFormat变量:
object EmailInvitationDTO {
val roleFormat = Json.format[RoleDTO]
val emailInvitationFormat = Json.format[EmailInvitationDTO]
}
谁知道少了什么?谢谢。您需要在
电子邮件邀请收件人
对象声明中包含隐式角色表单
。Json.format
宏在编译时查找隐式Json格式,否则它将不知道如何在EmailInvitationTo
中读/写RoleDTO
因此,在创建emailInvitationFormat
之前,您需要在作用域中输入以下行:
implicit val roleFormat = Json.format[RoleDTO]
如果我们知道这些类是什么样子的话会有帮助。用更多信息编辑问题。你需要使
roleFormat
和emailInvitationFormat
隐式。我做到了,错误仍在发生(请参见编辑)。哦,现在知道了。我忘记了隐式标识符。抱歉,伙计。在尝试解决另一个问题时发现了此问题,但帖子给了我一个提示,说明了我的代码有什么问题,因此,如果其他人遇到与我相同的问题,值得指出的是,隐式需要按正确的顺序声明,因此RoleDto需要在EmailInvocationDto之前。