java - 如何在喷雾路由中将Java对象转换为Json

标签 java json scala spray spray-routing

我想知道是否有任何方法可以在喷雾路由中将Java对象作为Json字符串返回。

现在,我正在通过我创建的 util 类 (JacksonUtil) 使用 Jackson 将 Java 对象(返回给我的 UserActor)转换为 Json。

以下是供引用的代码片段:

val route = {
    path("users" / Segment) { id =>
      parameterMap { params =>
        get {
          respondWithMediaType(MediaTypes.`text/plain`) {
            val resource: GetResource = new GetResource
            resource.searchCriteriaList.add(new SearchCriteria("userId", "=", Segment)) 
            logger.info("Request Received in new route: " + resource)
            onComplete(callUserActor(resource)) {
              case Success(ret: User) => {
                logger.info("Request complete. Success.")
                complete(JacksonUtil.toJson(ret))
              }
              case Failure(error) => {
                logger.info("Request complete. Failure. " + error)
                complete("Error: " + error)
              }
            }
          }
        }
      }
    } 
  }

def callUserActor(getResource: GetResource): Future[User] = {
    (userActor ? getResource).mapTo[User]
  }

GetResource 是获取查询参数的类。 例如,如果客户端点击 GET/users/123,则 GetResource 将添加搜索条件为 userId = "123"

最佳答案

我认为您需要根据您的需求和易用性自行完成,例如使用 Jackson 或使用 LiftJson 。 Spray 默认情况下不提供此类功能,因为它没有对此的依赖项!

您可以在此处查看 Spray 使用的编译依赖项:https://mvnrepository.com/artifact/io.spray/spray-routing_2.11/1.3.4

屏幕截图:

enter image description here

关于java - 如何在喷雾路由中将Java对象转换为Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40885108/

相关文章:

Java等于困惑

java - 如何将简单的 Curl 调用转换为 Java HttpURLConnection

java - 在 Web 应用程序中保留用户更改日志

java - 动态更新 HashMap 中值的特定部分

java - 使用 JUnit 运行 selenium 脚本时出现 NullPointerException

javascript - 如何从对象中删除原型(prototype)字段?

时间:2019-03-17 标签:c#FIREBASEdeserialize

multithreading - 从哪里开始认真的并发(多线程、并行?)编程

string - Scala中如何将字符串拆分为字符

scala - native snappy 库不可用