[英]Yaml Parsing from a config file
这是我第一次使用YAML解析器,目前我被困在这一点上
我有一个类似的配置文件
Users
-Name:A
Id : x
Addr:10.0.0.1
-Name:B
Id :y
Addr:10.0.0.2
HomeAddress
City:bla bla
Country:bla bla
Office Address
City:abchd
Country:bha bha ba
因此,我认为解析它的最佳方法是拥有一个这样的列表。
List<Map<String, obj>> Object = (List<Map<String, obj>>) yaml.load(input);
目的是通过指定字符串来访问对象。 像用户名A一样,我将能够获取他的ID和IPAddr(这对我来说现在是最重要的)。 但是当我尝试这个声明时,出现了这样的错误
Exception in thread "main" java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to java.util.List
at Message.MessagePasser.<init>(MessagePasser.java:34)
有人可以帮我调试一下吗。 我在截止日期前运行!! :(
YAML解析器似乎正在返回Map
。 因此,您应该像这样使用它:
Map config = (Map) yaml.load(input);
Map usersConfig = config.get("Users");
您还使用什么特定的YAML解析器?
更新1:如果您查看文档 ,则load
方法将根据YAML文件的内容返回List
或Map
。 由于您的YAML文件以键值映射( Users
)而不是数组( -
)开头,因此load
方法将返回Map
,这是在这种情况下要返回的适当类型。
1)在此处检查您的YAML的有效性: http : //instantyaml.appspot.com/
2)您的文档应如下所示:(注意空格!)
Users :
- Name : A
Id : x
Addr : 10.0.0.1
- Name : B
Id : y
Addr : 10.0.0.2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.