【问题标题】:How to load tree/indexes from .yaml file using the Bukkit API? [closed]如何使用 Bukkit API 从 .yaml 文件加载树/索引? [关闭]
【发布时间】:2017-07-28 22:03:46
【问题描述】:

如何在 Bukkit 中从 YAML 文件加载树/索引?这是我要从中获取所有值的文件:

groups:
  myGroup1:
    prefix: [test]
    permissions:
      - test
  myGroup2:
    prefix: [test2]
    permissions:
      - test2

此 YAML 文件是一个配置,用户可以在其中添加任意数量的组,因此无法收集 YamlConfiguration.getString("groups.myGroup1.[..])") 之类的内容。

我需要列出“组:”中的所有内容,所以它应该看起来像 YamlConfiguration.getString("groups.%groupName%.[..])")。 有人知道如何收集“groups:”后面的所有东西吗(可以只是组名)谢谢你的帮助!

【问题讨论】:

  • 你可以使用Jackson来读取yml文件。搜索 Jackson && yml && java
  • 谢谢!你能给我一个小说明如何在“groups:”之后加载所有对象吗?
  • Parse a yaml file的可能重复
  • 既然你已经标记了你的问题 Bukkit,this 可能就是你要找的。​​span>

标签: java yaml bukkit


【解决方案1】:

加载 YAML 文件并拥有 YamlConfiguration 的实例后,您可以使用 getKeys(boolean) 获取当前部分中的键列表。

如果参数为真,则递归检索所有键。如果它是假的,那么它只会得到顶级密钥。因此,在您的示例文件上调用 yml.getConfigurationSection("groups").getKeys(false) 会产生以下结果:

[myGroup1, myGroup2]

在您的情况下,使用它来解析 yaml 文件看起来像这样:

ConfigurationSection section = yml.getConfigurationSection("groups");
for (String group : section.getKeys(false)) {
    List<String> prefixes = section.getStringList("prefix");
    List<String> permissions = section.getStringList("permissions");
}

【讨论】:

  • 谢谢!这就是我的问题的答案! :))
  • @PiotrOsada 如果您满意,请接受我的回答,以便其他用户知道此问题已得到回答。
  • 完成! :) 谢谢
猜你喜欢
  • 2021-12-27
  • 1970-01-01
  • 2012-10-07
  • 2019-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-31
相关资源
最近更新 更多