[英]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.