Scala中的JsonArray

ken*_*nlz 2 arrays json scala playframework

目前这是我能得到的

{
    "friends": [438737,
        12345,
        32153,
        53243
    ]
}
Run Code Online (Sandbox Code Playgroud)

通过创建案例类可以实现

case class FriendsModel(uid: Option[String])
object FriendsModel {
  implicit val paramsWrite = Json.writes[FriendsModel]
  implicit val paramsRead = Json.reads[FriendsModel]
}
Run Code Online (Sandbox Code Playgroud)

并且基本上将friendsModel添加到名为friendList的List [FriendsModel]中

我可以 Ok(Json.toJson(friendList))

有没有办法将变量作为"朋友"插入,所以我的Json返回看起来像这样:

{
    "123654": [438737,
        12345,
        32153,
        53243
    ]
}
Run Code Online (Sandbox Code Playgroud)

其中123654是我的用户ID.

vde*_*gue 6

我会创建一个case类来封装数据:

case class User(uid: String, friends: Seq[FriendsModel])
Run Code Online (Sandbox Code Playgroud)

并为此类型创建一个Json编写器:

object User {
  implicit val writer: Writes[User] = Writes { user =>
    Json.obj(
      user.uid -> user.friends
    )
  }
}
Run Code Online (Sandbox Code Playgroud)

这会得到你 { "123654": [438737,...] }