使用 Scala 以这种格式生成 json

Generating json in this format using Scala

我有这个字符串:

"[[{\"cfunction\":\"sum\"},{\"cfunction\":\"groupBy\"}],[{\"cfunction\":\"Add Here\"}]]";

生成者:

val json2 = List(List(("cfunction" -> "sum"), ("cfunction" -> "groupBy")), List(("cfunction" -> "Add Here")))
println(compact(render(json2)))

如何生成:"[[{\"cfunction\":\"sum\" , \"1\":\"1\"},{\"cfunction\":\"groupBy\" , \"2\":\"2\"}],[{\"cfunction\":\"Add Here\"}]]"; ?

我试过了:

  val json2 = List(List(("cfunction" -> "sum" , "1" -> "1"), ("cfunction" -> "groupBy", "2" -> "2")), List(("cfunction" -> "Add Here")))

但这会导致编译器错误:

type mismatch; found : List[List[(java.io.Serializable, java.io.Serializable)]] required: org.json4s.JValue (which expands to) org.json4s.JsonAST.JValue

使用地图?

scala> import org.json4s._
import org.json4s._

scala> import org.json4s.native.JsonMethods._
import org.json4s.native.JsonMethods._

scala> import org.json4s.JsonDSL._
import org.json4s.JsonDSL._

scala> val json2 = List(List(Map("cfunction" -> "sum" , "1" -> "1"), Map("cfunction" -> "groupBy", "2" -> "2")), List(Map("cfunction" -> "Add Here")))
json2: List[List[scala.collection.immutable.Map[String,String]]] = List(List(Map(cfunction -> sum, 1 -> 1), Map(cfunction -> groupBy, 2 -> 2)), List(Map(cfunction -> Add Here)))

scala> println(compact(render(json2)))
[[{"cfunction":"sum","1":"1"},{"cfunction":"groupBy","2":"2"}],[{"cfunction":"Add Here"}]]