Ymal:
YAML是"YAML Ain't a Markup Language"(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名。
数据结构可以用类似大纲的缩排方式呈现,结构通过缩进来表示,连续的项目通过减号“-”来表示,map结构里面的key/value对用冒号“:”来分隔。
:
Yaml yaml = new Yaml();
();
可将yaml文件读为map,也可将map转换为yaml格式;
忽略注释,读写会导致注释丢失;
注:可通过改进SnakeYaml,增加对注释的保存和记录,但较复杂且不能够应对全部情况(主要问题在于注释的位置,其关联下一行不为注释的内容,在下一行修改后容易出问题)
参考思路:snakeyaml操作yml文件中注释的处理_湖南第一帅的博客-****博客_snakeyaml注释
-yaml:
/decorators-squad/eo-yaml
支持注释读写的yaml包;
读取的时候,生成节点,在每一个节点上保存相应的注释;
写入的时候,根据节点,重新添加相应的注释;
读取和写入如下:
YamlMapping team = (
new File("")
).readYamlMapping();
String architect = ("architect");
YamlSequence devs = ("developers");
YamlSequence devops = ("devops");
Map<String, Integer> grades = new HashMap<>();
("Math", 9);
("CS", 10);
YamlMapping student = (
new Student ("John", "Doe", 20, grades)
).dumpMapping();