java - 如何从 YAMLConfigutation 中读取列表
问题描述
我有一个看起来像这样的 YAML 文件:
foo:
bar:
- entry1: 1
entry2: a
- entry1: 2
entry2: b
(实际列表要长得多。)我正在使用 Apache Configuration2 的YAMLConfiguration
. 我可以看到 Apache Configuration2 中使用的内部数据结构中的数据,但我不知道如何得到这个列表。我实际上有一个与列表元素的结构相匹配的类,这是我真正想读的:
class MyListEntry {
public int entry1;
public String entry2;
}
如何将数据YAMLConfiguration
放入List<MyListEntry>
?
解决方案
这是我找到的解决方案(注意这适用于任何HierarchicalConfiguration
,而不仅仅是YAMLConfiguration
)
// this will return a list of List<HierarchicalConfiguration<ImmutableNode>>, one entry for each element of the list
var subConfigList = hierarchicalConfig.configurationsAt("foo.bar");
List<MyListEntry> myListEntries = new ArrayList<>(subConfigList.size());
// iterate over the subconfigs and pull out the specific values of interest
for(var subConfig : subconfigs) {
MyListEntry myListEntry = new MyListEntry();
myListEntry.entry1 = subConfig.getInt("entry1");
myListEntry.entry2 = subConfig.getString("entry2");
myListEntries.add(myListEntry);
}
推荐阅读
- java - Apache Flink CEP如何根据事件值传递时间窗口?
- python - 两个 python 脚本之间的大数据传输
- c# - Visual Studio 在错误的位置查找 web.config
- macos - Mac OS 上的 Docker /usr/src/app 路径
- r - 将分组数据发送到 arima/lm 并在 R 中重建原始列的最佳方法?
- ios - iOS中的电话号码
- asp.net-mvc - ASP.NET JavaScriptServices v2 模板 - 添加 Azure B2C 身份验证静态文件
- javascript - 创建新对象 Processing.js - 随机球程序
- php - PHP 将子域转发到其他网页(通过引用 url)
- python - 仅熊猫日期时间列的时间分量平均值