如何在加载YAML配置文件时验证值?

问题描述:

有没有办法在代码中加载它时验证YAML文件中的值。要求是我有一些YAML文件中必须有值的元素。如果验证失败,则不应加载YAML。如何在加载YAML配置文件时验证值?

我正在使用snakeyaml库,听说有一种方法可以通过Representsenter来实现。我目前使用加载YAML

代码,

Reader in = new InputStreamReader(Files.newInputStream(file), StandardCharsets.UTF_8); 
Yaml yaml = new Yaml(); 
yaml.setBeanAccess(BeanAccess.FIELD); 
return yaml.loadAs(in, School.class); 

既然你可以在一个YAML文件中的任何值,你应该加载一个函数的文件,测试值和提高,如果一个错误价值不是你想要的。如果是,则返回加载的数据。

如果您的YAML具有创建任意对象的标签,但在加载过程中检查并不会阻止这种情况,因为这样的对象可能是在您想要检查的值之前创建的。

如果你在你的YAML中有标签,这是一个真正的问题,那么你必须为可以处理标签的YAML文件制作一个safe_load -er(通过创建标准映射对象),然后检查值并使用完整标签支持重新加载。