由于Java没有针对YAML的标准API,并且由于从YAML1。2开始,该格式被认为是JSON的超集,因此我们决定创建一个紧跟该API并对其进行封装的解析器。JSON-P(JSR374)。有了这个想法,eo-yaml成型。
与市场上的其他YAML库不同,eo-yaml是完全封装的,并具有API优先设计-用户仅使用几个直观的Java接口,所有实现都被隐藏了。这也为不同的提供者打开了大门:您不喜欢参考实现?太酷了,自己实现这些接口并继续使用相同的API。
用法
构建,读取,转储或加载YAML的入口点是classcom。阿米海米尔。eoyaml。Yaml
。这是一个简短的概述:
建立YAML
最后 YamlMapping 球队 = Yaml。createYamlMappingBuilder()。加(“建筑师”, “ 阿米海米尔”)。加(“发展”,Yaml。createYamlSequenceBuilder()。加(“鲁托尔”)。加(“ 0pdd”)。建立(“ DevOps工具”))。加(“开发人员”,Yaml。createYamlSequenceBuilder()。加(“ amihaiemil”)。加(“ Salikjan”)。加(“ 谢里夫·沃利”).build())。build(“项目团队”);系统.出.打印(球队); // to串()方法被重写以漂亮地打印YAML
印刷的YAML将是:
# 项目团队
建筑师: amihaiemil
#DevOps工具
op:- 骗子- 0pdd
开发商:- amihaiemil- salikjan- SherifWally
阅读YAML
读取YAML非常简单(您可以从文件
,来自输入流
或从串
):
最后 YamlMapping 球队 = Yaml.createYamlInput(新 文件(“ team.yml”)
)。readYamlMapping();
倾销YAML(从Bean转换为Yaml)
最后 YamlMapping 学生 = Yaml.createYamlDump(新 学生(...)//带有getter和setter的bean
)。dump();
JDK整合
该API尽可能与JDK集成:例如,YamlSequence
实施Iterable<YamlNode>
还有一个YamlStream
(更多YAML文档的集合)实现Java 8的Stream API。
Java模块
该库现在将主要与Java 8兼容。 但是,它被打包为模块,因此,如果您使用的是Java 9或更高版本,则可以按原样使用它。
轻松扩展
由于它基于接口,因此您可以在现有装饰器或实现上轻松创建自己的装饰器或实现,以增强或创建新功能。 更多内容维基.
经常发布
目前,我们每周大约发布一次包含修复程序和功能的新版本。 我们有一个智能聊天机器人,使我们仅需发表评论即可发布到Maven Central。 了解最新版本如何这里.
总之,我们希望我们对产品有一个很好的概述,并希望看到更多的用户尝试一下。 如果您有任何问题,问题或功能要求,请随时打开Github Issue,我们将尽力为您提供帮助。
from: https://dev.to//amihaiemil/modern-yaml-for-modern-java-1f9g