Set<String> companies = companiesFile.getConfig().getConfigurationSection("companies").getKeys(false);
sender.sendMessage("§2List of companies:");
for (String s : companies)
{
sender.sendMessage("§2" + companiesFile.getConfig().getString(s + ".name"));
}
以上是我到目前为止的代码。我正在编写一个bukkit插件,我正在试图找出如何获得价值&#34; name&#34;来自所有公司。你知道如何获得价值&#34; name&#34;来自所有公司?这是配置:
companies:
simpleco:
expenses: 3000
revenue: 6000
name: SimpleCo
projectempireco:
expenses: 5000
revenue: 5500
name: ProjectEmpireCo
答案 0 :(得分:1)
要获取每个公司的实际名称值,您可以先在companies.get(key + ".name")
部分中获取所有直接子密钥(就像您已经完成的那样),这样如果您以后添加更多顶级部分你赢得的配置文件不必遍历那些。
如果您确定每家公司都会分配一个名称值,那么您可以直接使用直接路径(现在我们拥有每个公司部分的名称),并使用{{1}行。 },其中key
是公司部分的名称(例如simpleco
),公司是所有公司的ConfigurationSection
,或者您可以创建新的ConfigurationSection
一个级别更深层次(每个公司一个)并通过调用该特定部分的"name"
来检索密钥getValues(false).get("name")
的值。它看起来像这样:
// Get config file, here called "fileConfig"
ConfigurationSection companies = fileConfig.getConfigurationSection("companies"); // The "companies" section of the config file
for (String companyKey : companies.getKeys(false)) { // For each company key in the set
String name = (String) companies.get(companyKey + ".name"); // Either use the path to retrieve name value
// OR
ConfigurationSection companySection = companies.getConfigurationSection(companyKey); // Create a new section one level deeper
name = (String) companySection.getValues(false).get("name"); // Retrieve name by getting value of key named "name"
}