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