簡體   English   中英

Scala Play:如何將 JSON 數組結構映射到 Case Class

[英]Scala Play: How to map JSON array structure to Case Class

我對 Scala 和 Play 完全陌生,我偶然發現了以下問題:

給定以下 JSON 結構:

[
  {
    "name": "Adam",
    "age": 19
  },
  {
    "name": "Berta",
    "age": 22
  },
...
]

我想將此 JSON 映射到這樣的案例類:

case class User(name: String, age: Int)
case class Users(users: Seq[User])

或至少像Seq[User]類的東西。

不知道怎么遍歷JsPath,因為沒有key。

我試圖定義一個隱式讀取,但要么他無法解析符號“讀取”,要么他找不到用戶的隱式。

object User {
  implicit val reads: Reads[User] = Json.reads[User]
}
object Users {
  implicit val usersReads: Reads[Users] = (
    (JsPath).read[Seq[User]]
  )(Users.apply _)
}

如何將我的 JSON 映射到工作模型?

像這樣的東西會起作用

import play.api.libs.json._

case class User(name: String, age: Int)
case class Users(users: Seq[User])

object User {
  implicit val reads = Json.reads[User]
}

object Users {
  implicit val reads: Reads[Users] = Reads {
      _.validate[Seq[User]].map(Users(_))
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM