我正在使用Spray,我需要通过一种方法返回json对象。

val route =

path("all-modules") {
        get {
          respondWithMediaType(`text/html`) {
            complete( configViewer.findAllModules.toString)
          }
        }
      }

这打印ConfigResults(S1000,Success,List(testDataTypes, mandate, sdp))
但是我需要将此作为json对象。我该怎么做?

我以这种方式尝试
 val route =

    path("all-modules") {
      get {
        respondWithMediaType(`application/json`) {
          complete{
            configViewer.findAllModules
          }
        }
      }
    }

它给出了一个编译错误could not find implicit value for parameter marshaller: spray.httpx.marshalling.ToResponseMarshaller

最佳答案

您需要告诉Spray如何序列化您的案例类。

只需配置类似

object JsonSupport {
    implicit val formatConfigResults = jsonFormat3(ConfigResults)
}

jsonFormat'number'中的数字代表案例类中成员的数量。

然后,您只需要将其定义为隐式的类导入路由。
import JsonSupport._

关于json - 使用spray.json获取Json对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22090671/

10-10 06:11