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

Play for Scala: replicate structure in Json of array within array

我在 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)
      }
    })

我得到的错误是 type mismatch; found : Unit required: 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)
    })
  ))
})