如何解决即使我已经创建了 JsonProtocol,编译器也找不到隐式值
所以我有这个简单的 post 端点,应该在那里进行一些解组
post {
path("/emails") {
import package.model.impl.RegularEmailJsonSupport._
entity(as[RegularEmail]) { regularEmail =>
storeInboundEmails(regularEmail).runDB.attempt.unsafeRunSync()
}
}
这是与 json 协议格式一起的模型类,我不太相信它对 EmailStatus 字段是否正确
case class RegularEmail(
id: BigInt,timestamp: DateTime,senderEmailAddress: String,originalRecipientsAddresses: List[String],cc: List[String],subject: String,content: JsValue,customerNumber: Int,status: EmailStatus = EmailStatus.UNREAD,originalSenderEmailAddress: String,hasAttachments: Boolean = false
//Metadata: Option[EmailMetadata]
) extends Email(
id = id,timestamp = timestamp,senderEmailAddress = senderEmailAddress,originalRecipientsAddresses = originalRecipientsAddresses,cc = cc,subject = subject,content = content,status = status,hasAttachments = hasAttachments,sourceType = EmailSourceType.REGULAR //,//Metadata = Metadata
) {
}
object RegularEmailJsonSupport extends DefaultJsonProtocol with SprayJsonSupport {
implicit val eventDataFormat = jsonFormat1(DateTime.apply)
implicit val statusFormat = jsonFormat1(EmailStatus.apply)
implicit val EmailFormat = jsonFormat11(RegularEmail.apply)
}
这些是我得到的错误
Could not find implicit value for parameter um: akka.http.scaladsl.unmarshalling.FromrequestUnmarshaller
Could not find implicit value for evidence parameter of type RegularEmailJsonSupport.JF[P1] (Cannot find JsonWriter or JsonFormat type class for P1)
[error] implicit val statusFormat = jsonFormat1(EmailStatus.apply)
我也看到编译器没有抱怨 DateTime 的 jsonFormat,所以这个问题是由 EmailStatus 引起的吗?
EmailStatus 是Email 抽象类中的一个对象,它被RegularEmail 继承,如下所示:
object EmailStatus extends Enumeration {
type EmailStatus = Value
val READ,UNREAD,CLOSED = Value
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。