【问题标题】:Iterate over fields in typesafe config file迭代类型安全配置文件中的字段
【发布时间】:2016-05-16 01:16:03
【问题描述】:

在我的 Scala 应用程序中,我有这样的配置:

datasets {
    dataset1 = "path1"
    dataset2 = "path2"
    dataset3 = "path3"
}

如何遍历所有数据集以获取地图 [数据集,路径]?

【问题讨论】:

  • 这是什么?斯卡拉代码?如果是这样,它看起来很奇怪并且没有任何定义就没有用。如果不是,你在问什么?如何编写解析器?
  • @dth 这是类型安全配置库的文件。 blog.michaelhamrah.com/2014/02/… 给出了一个很好的例子来说明如何使用它们。如果以后没有人回答这个问题,我可能会写一个答案,但我现在没有时间玩它(我对这个库只有少量经验)

标签: scala typesafe


【解决方案1】:

用getConfig()获取配置后可以调用entrySet()

import scala.collection.JavaConversions._
val config = ConfigFactory.load()
val datasets = config.getConfig("datasets")
val configMap = datasets.entrySet().toList.map(
  entry => (entry.getKey, entry.getValue)
).toMap

你最终会得到一个Map[String, ConfigValue]。

【讨论】:

  • 一个相关的question出现在侧边栏,你可以看看接受的答案,它有更多的描述。
  • 我得到一个 Quoted ValueSet ,如何将其转换为字符串 -
【解决方案2】:

你可以试试我的 scala 包装器 https://github.com/andr83/scalaconfig - 它支持直接从配置对象读取原生 scala 类型:

val datasets = config.as[Map[String, String]]("datasets")

【讨论】:

    猜你喜欢
    • 2013-07-10
    • 2013-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多