无法从Future [List [String]] scala获取List [String]

时间:2016-03-23 14:00:17

标签: spray reactivemongo spray-json

我试过

complete(db[BSONCollection("user").find(BSONDocument()).cursor[UserObject].collect[List]().toJson)

我试过了,但我不行 它给了我错误

    Main.scala:101: Cannot find JsonWriter or     JsonFormat type class for scala.concurrent.Future[Option[UserObject]]
[error]                   complete(Themodel.get().toJson )

我试过

complete(collection.find(emptyQuery).cursor[BSONDocument].collect[List]()   map{ t => OK -> t})

但它给了我一个错误

found   : scala.concurrent.Future[(akka.http.scaladsl.model.StatusCodes.Success, Option[UserObject])]
[error]  required: spray.httpx.marshalling.ToResponseMarshallable
[error]                   complete(Themodel.get() map{
[error]                                           ^

2 个答案:

答案 0 :(得分:0)

我在sprayJson上发现了onComplete指令 http://spray.io/documentation/1.2.2/spray-routing/future-directives/onComplete/ 希望能帮助任何一个像我一样遇到麻烦的人

答案 1 :(得分:0)

我不分析你的代码。 just title(来自Future [List [String]]的List [String] )。你的代码很可能不适合制作。

 val futureList: Future[List[String]] = Future(List("v","d","f"))

 val someOperationOnFuture: Future[List[String]] = futureList.map(_.map(_.toUpperCase())) 

获得可以使用的结果:

val res: List[String] = Await.result(futureList, 40.seconds)

但它不是最好的方式,只是例子。

阅读一些信息Scala Future

如果您使用spray-json这会有所帮助。我想