Play for Scala:在数组中复制数组的Json结构
我在Scala中有一个数组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(
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
用于副作用操作您能提供一个阵列外观的示例吗?重现你的错误会更容易。