YAML分析从一个配置文件

这是我第一次使用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);

目标是通过指定一个字符串访问对象。 像用户名的,我SHLD能够得到他的身份证和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方法要么返回一个ListMap ​​取决于您的YAML文件的内容。 当你的YAML文件与键-值映射(启动Users (),而不是一个数组-load方法返回一个Map这是在这种情况下,要返回适当的类型。

http://instantyaml.appspot.com/:1)在此检查YAML的有效性

2)你的文件应该是这样:!(介意空格)

Users :
- Name : A
Id : x
Addr : 10.0.0.1
- Name : B
Id : y
Addr : 10.0.0.2

分类:java的 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.582 (s). 10 q(s)