2017-07-28 66 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

完成! :) 謝謝 –