【问题标题】:AVJ not validating enum typesAVJ 不验证枚举类型
【发布时间】:2020-08-30 03:52:19
【问题描述】:

抱歉,如果这已经被问过了,但我无法找到有效的答案

我在使用 enum 类型和 AVJ 验证 JSON 架构时遇到问题

我希望下面的代码返回 false,因为给定的值不会出现在 enum 类型中

var Ajv = require('ajv');
var ajv = new Ajv();

var schema = {
  gender: {
    enum: [
      'male',
      'female',
      'other'
    ]
  }
};
ajv.validate(schema, { gender: 'test' });
// returns true

你能告诉我如何解决这个问题吗

【问题讨论】:

    标签: javascript node.js enums jsonschema


    【解决方案1】:

    在 JSON Schema 中,Schema 中的所有属性都是称为 keywords 的指令。未知关键字将被忽略。

    在您的架构中,“性别”不是已知的 JSON 架构关键字,因此将被忽略。您可能正在寻找“属性”关键字:

    {
      properties: {
        "gender": {
          enum: ["male", "female", "other"]
        }
      }
    }
    

    【讨论】:

    • 非常感谢!我完全忽略了“属性”。我感谢您的帮助! @awwright
    猜你喜欢
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 2020-08-02
    • 1970-01-01
    • 2010-09-06
    • 2012-07-01
    • 1970-01-01
    • 2012-09-16
    相关资源
    最近更新 更多