我有以下代码片段:
val route: Route = complete("foo")
如何从“路由”值中提取“foo”消息?可能吗?我只知道以下用于测试用例的工具:
Get("/") ~> route ~> check {
responseAs[String] === "foo"
}
但我不需要执行测试用例,我使用以下工具解析 JSON 字符串:
val route: Route = entity(as[JsObject]) { entry: JsObject =>
...
complete("Succeeded")
}
如果输入的 JSON 字符串有效,则没有问题。如果它无效,“实体”函数会返回一个“Route”对象,其中包含一条消息,该消息的索引为输入 JSON 字符串中的无效字符,这就是为什么我需要从输入 JSON 字符串。例如:
val responseString: String = ...
if (responseString.ne("Succeeded")) {
...
complete("Error: ..." + as[JsString].toString.substring(start, end))
}
但我不知道如何提取响应字符串。