如何在加载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(通过创建标准映射对象),然后检查值并使用完整标签支持重新加载。