如何在Scala中将Map序列化为JSON?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (176)

所以我有这样的斯卡拉地图:

val m = Map[String, String](
    "a" -> "theA",
    "b" -> "theB",
    "c" -> "theC",
    "d" -> "theD",
    "e" -> "theE"
)

我想使用lift-json将此结构序列化为JSON字符串。

你们有没有人知道如何做到这一点?

提问于
用户回答回答于

这个怎么样?

implicit val formats = net.liftweb.json.DefaultFormats
import net.liftweb.json.JsonAST._
import net.liftweb.json.Extraction._
import net.liftweb.json.Printer._
val m = Map[String, String](
    "a" -> "theA",
    "b" -> "theB",
    "c" -> "theC",
    "d" -> "theD",
    "e" -> "theE"
)
println(compact(render(decompose(m))))

输出:

{"e":"theE","a":"theA","b":"theB","c":"theC","d":"theD"}

对于一个scala.collections.mutable.Map,你应该先将它转换为一个不可变的映射:.toMap

用户回答回答于

如果使用的是最新的Scala 2.10.x及以上版本:

println(scala.util.parsing.json.JSONObject(m))

扫码关注云+社区