Java 如何在游戏中验证YAML中没有重复条目?

Java 如何在游戏中验证YAML中没有重复条目?,java,playframework,yaml,Java,Playframework,Yaml,这在我身上发生过几次:通过过多的复制粘贴,我在Play YAML文件中定义了多个具有相同ID的实体 这不会产生一个好的错误(“在YAML中定义的重复实体:'foo'),而是会使YAML解析对我来说“行为异常”。我相信在其他情况下,它只会默默地删除重复的实体 验证YAML文件不存在重复项并在存在重复项时产生明显错误的好方法是什么?使用实体上的约束?唯一检查?如果可以使用外部工具,linter可以验证YAML文件不存在重复项。例如,您可以使用以下命令: 具体来说,它有一个规则密钥重复,用于检测重复条

这在我身上发生过几次:通过过多的复制粘贴,我在Play YAML文件中定义了多个具有相同ID的实体

这不会产生一个好的错误(“在YAML中定义的重复实体:'foo'),而是会使YAML解析对我来说“行为异常”。我相信在其他情况下,它只会默默地删除重复的实体


验证YAML文件不存在重复项并在存在重复项时产生明显错误的好方法是什么?

使用实体上的约束?唯一检查?

如果可以使用外部工具,linter可以验证YAML文件不存在重复项。例如,您可以使用以下命令:

具体来说,它有一个规则
密钥重复
,用于检测重复条目:

$ cat test.yml
foo: bar
foo: baz

$ yamllint test.yml
test.yml
  2:1       error    duplication of key "foo" in mapping  (key-duplicates)

我指的是“YAML ID”“每个实体都得到-这个字符串不会以任何方式反映在模型中,它只是用来引用其他YAML实体。它在模型本身中不存在。但是,如果复制行,某些字段将有重复的数据。您应该检查这些字段。我目前遇到的是加载YAML文件时出错,但这个错误并不能解释问题。我想在加载YAML之前运行一个验证步骤。我还看到一些问题,没有正确解析日期,没有记录错误或警告。。。
$ cat test.yml
foo: bar
foo: baz

$ yamllint test.yml
test.yml
  2:1       error    duplication of key "foo" in mapping  (key-duplicates)