2017-07-28 42 views
1

如何从Bukkit中的YAML文件加载树/索引?这是我想从抓住所有的值的文件:如何使用Bukkit API从.yaml文件加载树/索引?

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

这YAML文件是一个配置,其中,因为他们想的那么就不可能收集的东西像YamlConfiguration.getString("groups.myGroup1.[..])")用户可以添加任意多个组。

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

+0

您可以使用杰克逊阅读阳明文件。搜索Jackson && yml && java – Dakoda

+0

谢谢!你能给我一个小指令如何加载“groups:”之后的所有对象吗? –

+2

[解析yaml文件]可能的重复(https://stackoverflow.com/questions/25796637/parse-a-yaml-file) – maszter

回答

2

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

如果该参数为true,则所有的键都将被递归地检索。如果它是假的,那么它只会得到最高级别的键。所以,在你的榜样文件调用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"); 
} 
+0

谢谢!这是我的问题的答案! :)) –

+0

@PiotrOsada你能否接受我的回答,如果你满意,让其他用户知道这个问题已经回答。 – kmecpp

+0

完成! :) 谢谢 –