解析 YAML 文件
这是我第一次使用 YAML 文件,所以我首先想到的是找到任何可以帮助我解析文件的库.
This is the first time I am working with YAML files, so the first think I looked at was to find any library that could help me to parse the file.
我找到了两个库,YamlBean 和 SnakeYAML.我不确定我要使用哪一个.
I have found two libraries, YamlBean and SnakeYAML. I am not sure which one that I am going to use.
这是我尝试解析的文件示例:
Here is an example of the file that I am trying to parse:
users:
user1:
groups:
- Premium
user2:
groups:
- Mod
user3:
groups:
- default
groups:
Mod:
permissions:
test: true
inheritance:
- Premium
default:
permissions:
test.test: true
inheritance:
- Mod
Admin:
permissions:
test.test.test: true
inheritance:
- Mod
文件会动态变化,所以我不知道该文件将包含多少用户或组.
The file will change dynamical so I don't know how many users or groups the file would contain.
我想从中获取的信息是用户名和组,如下所示:
The information I would like to fetch from this is the user name and the group like this:
user1 Premium
user2 Mod
user3 default
从组中只有组名,如下所示:
And from the groups only the group names, like this:
Mod
default
Admin
谁能帮我从这里开始?什么是最好的图书馆?YamlBean 还是 SnakeYAML?
Anyone could get me started here? And what is the best library to use for this? YamlBean or SnakeYAML?
我想,我需要将信息保存在我可以轻松迭代的内容中.
I guess, I need to save the information in something that I easily could iterate over.
推荐答案
我最终使用了 SnakeYaml 并制作了一些拆分字符串来解决我的问题.
I ended up using SnakeYaml and made some split strings to solve my issue.
将yaml文件加载到Object
中,然后加载到Map
中,然后将Map
中的结果拆分为String[]
然后在 for
循环中,我从 String[]
中读出名称.我对组也做了同样的事情.
Loaded the yaml file to Object
and then into a Map
, then split the result from the Map
into String[]
and then in a for
loop I read out the name from the String[]
. I did the same with groups.
我知道有更好的解决方案,但这对于这个项目来说已经足够了.
I know that there is better solutions out there but this is good enough for this project.
感谢大家的回复.
相关文章