加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何使用scala play将json对象添加到json数组中?

发布时间:2020-12-16 08:53:13 所属栏目:安全 来源:网络整理
导读:在我的 scala代码中,我有一个包含电子邮件数据的json对象 val messages = inboxEmail.getMessages();var jsonArray = new JsArrayfor(inboxMessage - messages){ ... ... val emailJson = Json.obj("fromAddress" - fromAddressJsonList,"toAddress" - toAdd
在我的 scala代码中,我有一个包含电子邮件数据的json对象

val messages = inboxEmail.getMessages();
var jsonArray = new JsArray
for(inboxMessage <- messages)
{
    ...
    ...
    val emailJson = Json.obj("fromAddress" -> fromAddressJsonList,"toAddress" -> toAddressJsonList,"ccAddress" -> ccAddressJsonList,"bccAddress" -> bccAddressJsonList,"subject" -> emailMessage.getSubject().toString(),"message" -> Json.toJson(emailMessageBody))

我需要在每个循环期间将emailJson添加到jsonArray

我试过了

jsonArray.+:(emailJson)

jsonArray.append(emailJson)

但得到空阵列

我应该在这里使用jsonObject添加到json数组中

解决方法

请记住,JsArray是不可变的,所以写作

jsonArray.+:(emailJson)

不会修改jsonArray,它只是创建一个新的json数组,最后附加了emailJson.

相反,你需要写一些像:

val newArray = jsonArray +: emailJson

然后使用newArray而不是jsonArray.

在你的情况下,你说你需要在“每次循环迭代”中添加一个元素.当使用像Scala这样的函数式语言时,您应该尝试在“映射集合”而不是“循环迭代”方面进行更多思考.例如,您可以写:

val values = messages map {inboxMessage =>
    ...
    ...
    Json.obj("fromAddress" -> fromAddressJsonList,"message" -> Json.toJson(emailMessageBody))
}
val newArray = objects ++ JsArray(values)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读