我是 Scala 和 Play 框架的新手。我有一个这样的 Json:
{
"monday" : [],
"tuesday" : [
{
"type" : "xyz",
"value" : 1111
},
{
"type" : "abc",
"value" : 2222
}
],
.....
}
我正在尝试在列表或地图中读取此 Json,其中包含每个条目的类型/值列表。我已经定义了一个读取 HTTP 请求正文的方法
def readJson() = Action { implicit request =>
val body = request.body
val jsonObject = body.asJson
}
我不明白如何继续,我已经阅读了 Play Framework 文档,但我有点迷茫。任何人都可以帮忙吗?谢谢!
你可以按照这个
import play.api.libs.json._
final case class Task(
`type`: String,
value: Int
)
final case class Days(
monday: List[Task],
tuesday: List[Task]
)
implicit val ts = Json.format[Task]
implicit val da = Json.format[Days]
def readJson() = Action { implicit request =>
val days:Option[Days] = request.body.asJson.getOrElse(Json.obj()).asOpt[Days]
// .....
}
或者不是将 json 映射到 Case 类,您可以使用 jsPath 参见https://www.playframework.com/documentation/2.8.x/ScalaJsonCombinators
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句