作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法在代码中加载 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 中确实有标签,并且这是一个真正的问题,那么您必须为可以处理标签的 YAML 文件创建一个 safe_load
-er (通过创建普通映射对象),然后检查值并重新加载以提供完整的标签支持。
关于java - 如何在加载 YAML 配置文件时验证其值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40907099/
我是一名优秀的程序员,十分优秀!