Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 播放:如何将列表附加到现有JSON变量?_Scala_Playframework_Playframework 2.0 - Fatal编程技术网

Scala 播放:如何将列表附加到现有JSON变量?

Scala 播放:如何将列表附加到现有JSON变量?,scala,playframework,playframework-2.0,Scala,Playframework,Playframework 2.0,给定以下json变量 var json: JsValue = JsObject(Seq( "retcode" -> JsString("1") )) 下面为用户类写入对象 implicit val w2 : Writes[User] = ( (JsPath \ "id").write[Int] and (JsPath \ "userid").write[String] and (JsPath \ "name").write[S

给定以下json变量

   var json: JsValue = JsObject(Seq(
      "retcode" -> JsString("1")
    ))
下面为
用户
类写入对象

implicit val w2 : Writes[User] = (
      (JsPath \ "id").write[Int] and
      (JsPath \ "userid").write[String] and
      (JsPath \ "name").write[String]
  ) (unlift(User.unapply))
假设我有一个用户列表

var list : List[User] = ( some list )

如何将列表附加到初始的
json
var?

假设您希望以类似的方式结束(用户列表作为原始对象的另一个键/值添加):

你可以做:

val newJson = json.as[JsObject] + ("users" -> Json.toJson(list))

如果首先声明
json
JsObject
,而不是
JsValue
,则可以跳过
.as[JsObject]
。(如果您不知道JSON确切地表示一个对象,而不是一个列表或原语,
作为
可能是不安全的。有关更好的处理方法,请参阅。)

假设您希望得到类似的结果(用户列表作为原始对象的另一个键/值添加):

你可以做:

val newJson = json.as[JsObject] + ("users" -> Json.toJson(list))

如果首先声明
json
JsObject
,而不是
JsValue
,则可以跳过
.as[JsObject]
。(如果您不知道您的JSON明确表示一个对象,而不是一个列表或原语,
as
可能是不安全的。有关更好的处理方法,请参阅。)

假设我们需要向现有的JSON添加/附加JSON。

考虑

userAddressList = Users multiple address list.
现在,您希望将上述两个信息附加到单个json对象中:

val res = JsObject(Seq(
("userAddresses", Json.toJson(userAddressList)),
("userDetails", Json.toJson(userService.getUserDtlsByID(userId)))
))
它将产生如下结果:

{
"userAddresses" :[{"addId":"001"},{"addId":"002"}],
"userDetails":{"id":"001", "name":"MAC", "designation":"Manager"}
}

我希望这能奏效;-)

假设我们需要向现有的json添加/附加json。

考虑

userAddressList = Users multiple address list.
现在,您希望将上述两个信息附加到单个json对象中:

val res = JsObject(Seq(
("userAddresses", Json.toJson(userAddressList)),
("userDetails", Json.toJson(userService.getUserDtlsByID(userId)))
))
它将产生如下结果:

{
"userAddresses" :[{"addId":"001"},{"addId":"002"}],
"userDetails":{"id":"001", "name":"MAC", "designation":"Manager"}
}

我希望这能奏效;-)

JsObject
提供了一个
+(名称,jsValue)
操作(但要小心,因为使用
var
已经“不起作用”)。
JsObject
提供了一个
+(名称,jsValue)
操作(但要小心,因为使用
var
已经“不起作用”)。