【问题标题】:How to validate no duplicate entries in YAML on Play?如何在 Play 上验证 YAML 中没有重复条目?
【发布时间】:2011-12-26 13:39:41
【问题描述】:

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

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

验证 YAML 文件没有重复项并产生明显错误的好方法是什么?

【问题讨论】:

  • 我还看到了在没有错误或警告记录的情况下无法正确解析日期的问题...

标签: java playframework yaml


【解决方案1】:

如果可以使用外部工具,linter 可以验证您的 YAML 文件没有重复项。例如,您可以使用yamllint 命令:

sudo pip install yamllint

具体来说,它有一个规则key-duplicates 可以检测重复条目:

$ cat test.yml
foo: bar
foo: baz

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

【讨论】:

    【解决方案2】:

    对您的实体使用约束?独特的支票?

    【讨论】:

    • 我指的是每个实体获得的“YAML ID”——这个字符串不会以任何方式反映在模型中,它只是用来引用其他 YAML 实体。它不存在于模型本身中。
    • 不过,如果您重复行,您将有一些字段的重复数据。您应该检查这些字段。
    • 我目前遇到的是加载 YAML 文件时出错,但该错误确实不能说明问题。我想在加载 YAML 之前运行一个验证步骤。
    猜你喜欢
    • 2019-08-04
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    • 2022-10-06
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多