折叠YAML密钥层次结构

时间:2020-10-06 07:38:00

标签: yaml

我想知道是否可以将YAML密钥折叠成单行。

喜欢转化:

lvl1:
  lvl2:
    lvl3:
      lvl4:
        key1: val1
        key2: val2

变成这样:

lvl1.lvl2.lvl3.lvl4:
  key1: val1
  key2: val2

我在Java Spring Framework配置文件中看到了这种语法。

1 个答案:

答案 0 :(得分:1)

您可以将其写为有效的YAML。但是,它将使lvl1.lvl2.lvl3.lvl4成为单个键。如果要这样编写YAML,则需要实现后加载逻辑以将其转换为原始结构。

在春季,将各个级别同时进行because

YamlPropertiesFactoryBean将YAML作为属性加载

Java中的属性是键值对的列表,因此嵌套映射被转换为键列表,其中每个键都包含其从文档根目录开始的路径。您转换后的YAML如下所示:

lvl1.lvl2.lvl3.lvl4.key1=val1
lvl1.lvl2.lvl3.lvl4.key2=val2

原始和压缩的YAML文件的结果都是相同的,这就是为什么您可以在Spring配置文件中执行此操作的原因。但是,它不是YAML本身的功能。


使用压缩的点分符号的格式为TOML

[lvl1.lvl2.lvl3.lvl4]
key1 = "val1"
key2 = "val2"

以上文档产生的结构与原始YAML文件相同。