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

Java 如何在加载YAML配置文件时验证值?,java,yaml,snakeyaml,Java,Yaml,Snakeyaml,在代码中加载YAML文件时,是否有方法验证YAML文件中的值。要求是我在YAML文件中有一些必须有值的元素。如果验证失败,则不应加载YAML 我正在使用snakeyaml库,听说有一种方法可以通过Representer实现这一点 我当前用于加载YAML的代码 Reader in = new InputStreamReader(Files.newInputStream(file), StandardCharsets.UTF_8); Yaml yaml = new Yaml(); yaml.setB

在代码中加载YAML文件时,是否有方法验证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文件(通过创建普通映射对象)创建一个
安全加载
-er,然后检查值并使用完全的标记支持重新加载