【发布时间】:2021-05-12 09:31:23
【问题描述】:
Akka Http 中的端点如下所示:
pathPrefix("somePath" / Segment) { someData =>
post {
entity(as[SMS]) { sms =>
// some code here ...
complete(StatusCodes.OK)
}
}
}
而短信定义为:
sealed trait Message
case class SMS(numFrom: String, message:String) extends Message
case class Email(emailFrom: String, message: String) extends Message
如果我想收到SMS 的列表,我可以执行以下操作:
type SMSList = List[SMS]
...
pathPrefix("somePath" / Segment) { someData =>
post {
entity(as[SMSList]) { listOfSMSs =>
// some code here ...
complete(StatusCodes.OK)
}
}
}
如果我想同时接收短信和电子邮件列表怎么办? 这个我试过了,还是不行:
type MessageList = List[Message]
pathPrefix("somePath" / Segment) { someData =>
post {
entity(as[MessageList]) { listOfMessages =>
// some code here ...
complete(StatusCodes.OK)
}
}
}
是否可以接收属于同一层次结构的对象列表?
图书馆:
circe = 0.13.0
heikoseeberger = 1.35.3
akka http = 10.2.3
json:
[
{"numForm": "123 456", "message": "sms message"},
{"emailFrom": "some@mail.com", "email message"}
]
【问题讨论】:
-
糟糕,我忘了提到库:circe(0.13.0) 和 heikoseeberger (1.35.3),akka http (10.2.3)
-
这对您有帮助吗? stackoverflow.com/q/50457466/2359227
-
谢谢Tomer,但我认为这是一个不同的问题。在您的代码中,您会看到 ""{ \n "Something": ... }。这是一个不同的输入,我没有字符串“Something”。我已经用调用的 json 更新了文本。如果我错了,请纠正我
标签: scala akka json-deserialization akka-http circe