使用Scala生成这种格式的json



我有这个字符串:

"[[{"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\"}],[{\?

我试过:

  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

是否使用Map?

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"}]]

最新更新