gpt4 book ai didi

java - 使用 SnakeYAML 编写 YAML 文件

转载 作者:太空宇宙 更新时间:2023-11-04 15:03:44 25 4
gpt4 key购买 nike

我一直在尝试创建一种方法,将我拥有的值组合到 Yaml.load 可以读取的 Map 中。因此,例如:

Map<String, Object> map = new HashMap<String, Object>();
map.put("example.key.abc", "test");
map.put("example.key.def", "another test");
map.put("example.test", "yet another test");
map.put("example2.ex", "ex2");

我想把它变成 Yaml 可以读取的 Map。例如,我尝试将 abc 和 def 及其值放入映射中,然后将该映射放入具有其他值的映射中。我似乎永远无法让它发挥作用。另外,我希望它能够与任何键一起使用,因此仅手动进行 map 是行不通的。如果我可以通过我的其余代码运行一个可以使用 Yaml 读取的 Map,那么这就是我期望从上面的键获得的输出:

example:
key:
abc: test
def: another test
test: yet another test
example2:
ex: ex2

我似乎无法创建可以将我拥有的 Map 组合成 Yaml 可以理解的 Map 的方法。是否有 API,或者这只是一个非常简单的方法,但我只是无法弄清楚?感谢任何帮助,谢谢。

最佳答案

你觉得怎么样Guavas Splitter (特别是 MapSplitter #withKeyValueSeparator ),与 mapTransformation 结合使用就像

Maps.transformEntries(fromMap, transformer)

因此,您可以将生成的 map 提供给snakeYaml,如下所示

Map<String,Map<String,Map<String, String>>> =
ImmutableMap.of("example", ImmutableMap.of("key", ImmutableMap.of("abc", "test")...

顺便说一句:你知道 typesafe-config 的 HOCON 吗? ,该库支持读取和写入点分隔(Map 形成的)配置文件

foo.bar=10
foo.baz=12

Config foo = conf.getConfig("foo");
int bar2 = foo.getInt("bar");

int bar1 = conf.getInt("foo.bar");

关于java - 使用 SnakeYAML 编写 YAML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22272986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com