【问题标题】:JSON Schema: Combine multiple references in properties together to "AdditionalProperties = false"JSON Schema:将属性中的多个引用组合到“AdditionalProperties = false”
【发布时间】:2021-08-19 16:46:31
【问题描述】:

我想把属性按类型分开,比如:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "allOf": [
      { "$ref": "type/blue.json#/definition" },
      { "$ref": "type/red.json#/definition"   }
    ]
  }}

我的问题是在引用它时 (#ref) 它无法识别任何属性,并且在添加附加属性时它给了我一个错误

在文件 blue.json 和 red.json 我定义了两个不同的字段,例如:

# blue.json
"definition": { 
    "name": {
       "type": "string"                
    }
  }

# red.json
    "definition": {
        "age": {
           "type": "string"
        }
      }

它给我的错误好像是由于“additionalProperties = false”,它无法识别red.json和blue.json文件中的“age”字段和name字段

如果你能帮助我,我将不胜感激

【问题讨论】:

    标签: arrays json jsonschema json-schema-validator


    【解决方案1】:

    这就是“unevaluatedProperties”关键字的用途——它“查看”包含“properties”关键字(以及additionalProperties和patternProperties)的子模式,在检查哪些属性尚未定义时考虑这些子模式因此是不允许的。

    请注意,此关键字是 draft2019-09 的新关键字,因此如果您使用的是 draft7 或更早版本的评估器,则它不可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-11
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多