在Scala中读取具有不同属性的相同嵌套结构的Yaml

时间:2019-10-16 19:16:16

标签: scala yaml snakeyaml

我正在尝试使一个泛型函数使用snakeYaml在scala中读取具有相同嵌套结构但属性不同的yaml文件。就像一个Yaml一样

myMap:
-
 name: key1
 value: value1
-
 name: key2
 value: value2

另一个Yaml可能是

myMap:
-
 name: key1
 value: value1
 data: data1
-
 name: key2
 value: value2
 data: data2

要先阅读yaml,我可以使用here中的以下代码进行阅读:

class configParamsKeyValue {
  @BeanProperty var name: String = null
  @BeanProperty var value: String = null
}

class myConfig{
  @BeanProperty var myMap= new java.util.ArrayList[configParamsKeyValue]();
}

def loadConfig(filename : String): myConfig = {
   val yaml = new Yaml(new Constructor(classOf[myConfig]))
   val stream = new FileInputStream(filename)
   try {
     val obj = yaml.load(stream)
     obj.asInstanceOf[myConfig]
   } finally {
   stream.close()
  }
}

我希望能够将ArrayList的configParamsKeyValue类型作为参数传递给myConfig类,以便通过定义另一个类(如

)来读取第二个Yaml文件
class configParamsKeyValueData {
  @BeanProperty var name: String = null
  @BeanProperty var value: String = null
  @BeanProperty var data: String = null
}

有人可以帮忙吗

0 个答案:

没有答案