为什么我使用 snakeyaml 的简单 scala 文件无法将地图作为 YAML 转储到文件中?

Why my simple scala file use snakeyaml can't dump a map as YAML to a file?

我有这个简单的 scala 文件使用 snakeyaml:

object Main extends App {
var a=Map[String,Object]()
a+=("a"->"b")
println(a("a"))

val yaml=new Yaml()
val fileWriter = new FileWriter("d:\src\scala\yaml.txt")
yaml.dump(a,fileWriter)}

我只在 yaml.txt 得到这个:

!!scala.collection.immutable.Map$Map1 {}

为什么不是这个{a: b}

我怀疑发生这种情况是因为 SnakeYAML 是一个 Java 库,它不知道特定于 Scala 的集合。因此,要将 Scala-Map 转储到库中,您应该先将其转换为 Java-Map。像这样的代码可能会有所帮助:

import scala.collection.JavaConverters._

...

yaml.dump(a.asJava,fileWriter)

如果您想转储很多不同的 Scala 集合,您可以考虑为它们实现自定义 Representers and Constructors