如何在 json 模式验证中验证枚举值?

seb*_*ili 4 validation schema json

主要问题在于根据处理数组的模式验证 json。那么,如果我放一个不同的值似乎仍然有效?

json 架构:

{
  "transactions" : {
          "type" : "array",
          "items" : 
          {
            "type" : "object",
            "properties" : {
              "type" : {
                "type" : "string",
                "enum" : ["BREAK"]
              },
              "required":["type"]
          },
            "required":["items"]
}
}
}
Run Code Online (Sandbox Code Playgroud)

输入 JSON:

{
  "transactions":[
    {"type":"BREAKDDDDDddddddddddddddddddddddddddddddddddJDJDJDJDJDJDJDJ"}
  ]
}
Run Code Online (Sandbox Code Playgroud)

结果:未发现错误。JSON 根据架构进行验证。

这是错误的,因为我们还没有定义像“BREAKDDDDD”这样的枚举类型

http://www.jsonschemavalidator.net/

对此有何想法?

干杯伙计们

小智 7

您的 JSON 架构缺少某些属性。查看此处提供的有关如何启动架构http://json-schema.org/example1.html的示例。

将您的架构更新到以下并尝试

{ "type": "object", "properties": { "transactions": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": ["BREAK"] } }, "required": ["type"] } } } }