繁体   English   中英

Play2 on Scala: JSON 序列化/反序列化

[英]Play2 on Scala : JSON serialization/deserialization

我是新的 Play/Scala 并开始将 Spring Boot RestAPI 移植到 Play2 作为学习练习。 在 Java/SpringRest 中,它只是一个注释 POJO 的问题,JSon 库自动处理序列化/反序列化。

根据我阅读的每个 Play2/Scala 教程,我必须为每个模型/案例 class 编写一个 Writer/Reader,如下所示

implicit val writesItem = Writes[ClusterStatus] {
  case ClusterStatus(gpuFreeMemory, gpuTotalMemory, labelsLoaded, status) =>
     Json.obj("gpuFreeMemory" -> gpuFreeMemory,
              "gpuTotalMemory" -> gpuTotalMemory,
              "labelsLoaded" -> labelsLoaded,
              "status" -> status)
}

//HTTP method 
def status() = Action  { request =>
  val status: ClusterStatus = clusterService.status()
  Ok(Json.toJson(status))
}

这意味着如果有一个大的领域模型/响应 model,我必须写很多 Writer/Readers 来序列化/反序列化?

有没有更简单的方法来处理这个问题?

你可以试试 "com.typesafe.play" %% "play-json" % "2.7.2"。 要使用它,您只需执行以下步骤:

1)添加以下依赖项(根据您的项目使用版本):

  "com.typesafe.play" %% "play-json" % "2.7.2",
  "net.liftweb" % "lift-json_2.11" % "2.6.2" 

2)定义格式:

  implicit val formats = DefaultFormats

  implicit val yourCaseClassFormat= Json.format[YourCaseClass]

format为您的案例 class 定义了读取和写入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM