JSON 架构:将附加属性限制为一种类型

时间:2021-05-25 06:28:02

标签: jsonschema json-schema-validator ajv

我正在尝试使用具有相同类型的所有附加属性来验证对象。

这是我对 JSON Schema 的尝试:

{
  additionalProperties: {
    oneOf: [
      { type: "string" },
      { type: "boolean" },
    ]
  }
}

但这只会检查单个附加属性。

有没有办法实现以下目标?

// Valid
{
  "a": true
  "b": false
}

{
  "c": "c",
  "d": "d"
}

// Invalid
{
  "a": true,
  "b": "b"
}

1 个答案:

答案 0 :(得分:2)

{
  "$schema": "https://json-schema.org/draft/2019-09/schema",
   "oneOf": [
      {
        "additionalProperties": {
          "type": "string"
        }
      },
      {
        "additionalProperties": {
          "type": "boolean"
        }
      }
    ]
}

工作:

{
  "a": true,
  "b": false
}

不工作:

{
  "a": true,
  "b": "false"
}