Play for Scala:在数组中复制数组的Json结构

Play for Scala:在数组中复制数组的Json结构,scala,playframework,playframework-2.0,Scala,Playframework,Playframework 2.0,我在Scala中有一个数组array1,其中包含另一个数组array2 现在,我正在尝试使用Play复制Json中的结构。这是我的尝试: var json = JsObject(Seq()) array1.foreach(a1 => { json += "a1" -> JsNumber(a1.name) + "a2" -> a1.array2.foreach { a2 => "a2" -> JsString(

我在Scala中有一个数组
array1
,其中包含另一个数组
array2

现在,我正在尝试使用Play复制Json中的结构。这是我的尝试:

    var json = JsObject(Seq())
    array1.foreach(a1 => {
      json += "a1" -> JsNumber(a1.name) + 
      "a2" -> a1.array2.foreach {
        a2 => "a2" -> JsString(a2.name)
      }
    })
我得到的错误是
类型不匹配;找到:所需单元:play.api.libs.json.JsValue


如何解决这个问题?提前感谢。

您可能希望在循环中使用map而不是foreach

关于您想要什么json有点不清楚,但根据对对象的描述,我想说这可能就是您想要的:

val json =  JsArray(array1.map { a1 =>
  JsObject(List(
    "a1" -> JsNumber(a1.name),
    "a2" -> JsArray(a1.array2.map {
      a2 => JsString(a2.name)
    })
  ))
})

使用
map
而不是
foreach
foreach
用于副作用操作您能提供一个阵列外观的示例吗?重现你的错误会更容易。