在将代码加载到代码中时,是否有一种方法可以验证YAML文件中的值。要求是我在YAML文件中有一些必须具有值的元素。如果验证失败,则不应加载YAML。
我正在使用snakeyaml库,听说有一种方法可以通过Representer做到这一点。
我当前用于加载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中确实有标签,这是一个真正的问题,那么您将必须为safe_load
可以处理标签的YAML文件创建一个-er(通过创建常规映射对象),然后检查值并重新加载完整的标签支持。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句