web-dev-qa-db-ja.com

JSONスキーマの条件付き:必須および必須ではない

この条件を実装しようとしています。特定のプロパティが存在する場合、別のプロパティが必要です。しかし、それが存在しない場合、別のものは必要ありません。

また、JSONスキーマでは、依存関係では使用できませんか?

ここにサンプルスキーマがあります

var schema = {
    "properties": {
        "smaller": {
            "type": "number"
        },
        "larger": { "type": "number" },
        "medium":{'type':'string'},
        "bulky":{'type':'string'}
    },
    require:['smaller','larger'],
    additionalProperties:false
};

「中」が存在する場合、「かさ高」が必要です。それ以外の場合は、「かさばる」必要はありません。

ここで「必須ではない」とは、「中」が存在しない場合、かさばることが存在してはならないことを意味します。

6
h.ataie

それぞれの値に依存する複数のプロパティがある場合は、プロパティの依存関係を使用できます。

{
  "type": "object",
  "properties": {
    "weight_1": {
        "type": "integer"
    },
    "weight_2": {
        "type": "integer"
    },
    "description_1": {
        "type": "string" 
    },
    "description_2": {
        "type": "string" 
    }
  },
  "allOf": [
    {
        "if": {
          "properties": {
            "weight_1": {
                "minimum": 10 
            }
          }
        },
        "then": {
          "dependencies": {
            "weight_1": ["description_1"]
          }
        }
    },
    {
        "if": {
          "properties": {
            "weight_2": {
                "minimum": 100
            }
          }
        },
        "then": {
          "dependencies": {
            "weight_2": ["description_2"]
          }
        }
    }
  ]
}
0
Brian Wong