【发布时间】:2015-08-30 21:34:05
【问题描述】:
我正在尝试将请求负载解组为字符串,但由于某种原因它失败了。我的代码:
path("mypath") {
post {
decodeRequest {
entity(as[String]) {jsonStr => //could not find implicit value for...FromRequestUnmarshaller[String]
complete {
val json: JsObject = Json.parse(jsonStr).as[JsObject]
val jsObjectFuture: Future[JsObject] = MyDatabase.addListItem(json)
jsObjectFuture.map(_.as[String])
}
}
}
}
}
例如,在这个SO thread 中,似乎默认情况下应该可以使用这个隐式。但也许这在 akka-http 中有所不同?
我尝试导入具有stringUnmarshaller 的akka.http.scaladsl.unmarshalling.PredefinedFromEntityUnmarshallers,但没有帮助。可能是因为这返回类型 FromEntityUnmarshaller[String] 而不是 FromRequestUnmarshaller[String]。 spray.httpx.unmarshalling.BasicUnmarshallers 中还有一个字符串解组器,但这也无济于事,akka.http.scaladsl.unmarshalling.PredefinedFromStringUnmarshallers
如何解组(和编组)成字符串?
(奖励:如何直接在 JsObject 中解组(播放 json)。但也只有字符串,因为我对为什么这不起作用并且它可能对其他情况有用)。
使用 1.0-RC3
谢谢。
【问题讨论】: