如何在 Scala 中将 Map[String, Map[String, Any]] 类型的嵌套映射转换为 JSON?

How to convert nested maps of type Map[String, Map[String, Any]] to JSON in Scala?

我尝试将 Scala 中的 Map[String, Map[String, Any]] 转换为 JSON 但由于它们具有嵌套映射,因此无法执行此操作。有办法吗?我尝试查看此 link,但它将所有内容转换为字符串并将列表转换为 "List(...)"。任何想法如何去做这个?我什至可以接受 Map[String, Map[String, String]].

的解决方案

您可以使用 play-json library。然后转换嵌套地图将如下所示:

import play.api.libs.json.{JsValue, Json}

val nestedMap: Map[String, Map[String, String]] = Map("employees" -> Map("Paul" -> "developer", "Alice" -> "accountant"))
val json: JsValue = Json.toJson(nestedMap)
val compactJson: String = Json.stringify(json)

println(compactJson)

输出:

{"employees":{"Paul":"developer","Alice":"accountant"}}

谢谢。我还看到可以执行 compact(render(decompose(nestedMap)))。这里我说的是netliftweb.json库