簡體   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