使用Scala以此格式生成json

时间:2016-01-05 22:07:36

标签: scala json4s

我有这个字符串:

"[[{\"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 \& #34;}]]&#34 ;; ?

我试过了:

  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

1 个答案:

答案 0 :(得分:1)

使用地图?

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