2016-07-10 5 views
1

私はScalaに配列array1を持っています。配列array2を含んでいます。Play for Scala:配列内の配列のJsonのレプリケート構造

今、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

のですか?前もって感謝します。

+0

map'の代わりに、 '使用します'foreach'。 'foreach'は副作用のためのものです – ipoteka

+0

あなたの配列はどのように見えるのでしょうか?エラーを再現する方が簡単です。 –

答えて

1

おそらく、ループ内でforeachの代わりにmapを使用することが望ましいでしょう。

それはあなたがしたいJSONものに、わずか不明だが、あなたのオブジェクトの記述に基づいて、私は、これはあなたが探しているものはおそらくだと思います:

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

は完全に機能しました – ps0604