在Akka Http中返回JSON数组

时间:2018-08-27 14:18:22

标签: scala akka akka-http

我有一个Akka HTTP服务器,其路由定义如下:

case class FooResults(results: Seq[Tuple2[String, Tuple2[Double, Double]]])

object MainApp extends App with JsonSupport {

  ...

  lazy val routes: Route =
    pathPrefix("foo") {
      pathEnd {
        get {
          entity(as[String]) { str =>
          val results =
            (fooActor ? Foo(str)).mapTo[FooResults]
          complete(results)
      }
    }
  }
}
...

在该类中,我注入了隐式json支持:

trait JsonSupport extends SprayJsonSupport {
  import DefaultJsonProtocol._
  implicit val userFormat = jsonFormat1(FooResults)
}

sbt仍然以

报告
Type mismatch - FooResults with ToResponseMashallable

有人遇到类似的问题吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我想通了自己。这是因为我的项目中有两个SprayJsonSupport类:

import spray.httpx.SprayJsonSupport
import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport

现在,显然后者是正确的。自从Scala和Akka都在快速发展以来,就一直在猜测,有时它会与名称空间和类混淆。