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
我试图定义一个隐式读取,但要么他无法解析符号 "read",要么找不到用户的隐式。
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(_))
}
}
我是 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
我试图定义一个隐式读取,但要么他无法解析符号 "read",要么找不到用户的隐式。
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(_))
}
}