YAML Beans读取嵌套对象

时间:2015-07-07 15:55:58

标签: java mongodb yaml

我有这种格式的YAML文件:

MongoDB:
       - server:
          - host: localhost:27017
          - minOplogHours: 100
          - maxSecondaryDelay: 120
       - server:
          - host: localhost:27018
          - minOplogHours: 100
          - maxSecondaryDelay: 120
       - server:
          - host: localhost:27019
          - minOplogHours: 100
          - maxSecondaryDelay: 120

我需要能够访问每个host:字段中每个server:的数据,我该如何实现?

到目前为止,我有这个:

  YamlReader reader = new YamlReader(new FileReader("src/mongodb.yml"));
  Object object = reader.read();

  Map resultMap = (Map) object;
  System.out.println(resultMap.get("MongoDB"));

打印:

[{server=[{host=localhost:27017}, {minOplogHours=100}, {maxSecondaryDelay=120}]}, {server=[{host=localhost:27018}, {minOplogHours=100}, {maxSecondaryDelay=120}]}, {server=[{host=localhost:27019}, {minOplogHours=100}, {maxSecondaryDelay=120}]}]

如何从此字符串中提取服务器详细信息?更具体地说,我如何获得host:值。

1 个答案:

答案 0 :(得分:1)

我知道这是一个旧帖子,但我没有看到任何回复。以下是我认为对您有用的内容。

替换

Map resultMap = (Map) object;

Map<String, Map<String, Map<String, String>>> resultMap = (Map<String, Map<String, Map<String, String>>>) object;

我有这样的事情并且有效。 我希望这可以帮助别人。