使用Fold将List [JsObject]转换为JsArray

时间:2013-10-16 18:27:54

标签: scala recursion playframework

此处可以使用foldList[JsObject]转换为JsArray吗?

    def getJsonArray(list: List[JsObject]): JsArray = {
        def go(l: List[JsObject], acc: JsArray) : JsArray = l match {
            case x :: xs => go(xs, acc ++ Json.arr(x))
            case Nil => acc
        }
        go(list, JsArray())
    }

1 个答案:

答案 0 :(得分:4)

是的,这应该大致相同:

  def getJsonArray(list: List[JsObject]): JsArray = {
    list.foldLeft(JsArray())((acc, x) => acc ++ Json.arr(x))
  }