Similaire à la solution d'Einar, vous pouvez utiliser JSONObject de Parser Combinators pour ce faire. Notez qu'il ne se récurs pas, vous devrez le faire vous-même. La bibliothèque inclut également JSONArray, pour des structures de données de type liste. Quelque chose comme ce qui suit abordera les préoccupations de Noel concernant les structures imbriquées. Cet exemple ne se récurs pas jusqu'à un niveau arbitraire, mais gérera une valeur de List[Map[String, Any]].
import scala.util.parsing.json.{JSONArray, JSONObject}
def toJson(m : Map[String, Any]): String = JSONObject(
m.mapValues {
case mp: Map[String, Any] => JSONObject(mp)
case lm: List[Map[String, Any]] => JSONArray(lm.map(JSONObject(_)))
case x => x
}
).toString