Json Schema-检查值是否存在

时间:2019-08-30 07:38:19

标签: json schema

我使用模式来验证我的json。 我想检查属性值是否存在。如果存在,则该属性是必需的。

我的模式是:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "Person": {
      "required": true,
      "type": [
        "object"
      ],
      "properties": {
        "Surname": {
          "required": true,
          "type": [
            "string"
          ]
        },
        "Name": {
          "required": true,
          "type": [
            "string"
          ]
        },
        "Sex": {
          "required": false,
          "type": [
            "string",
            "null"
          ]
        },
        "BirthDate": {
          "required": true,
          "type": [
            "string"
          ]
        },
        "BirthPlace": {
          "required": false,
          "type": [
            "string",
            "null"
          ]
        },
        "Keys": {
          "required": true,
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "Type": {
        "required": true,
                "type": [
                  "string"
                ],
        "enum": ["TaxCode", "DB"]
              },
              "Id": {
                "required": true,
                "type": [
                  "string"
                ]
              }
            }                 
          },
          Data:
         {
                 "required": false,
      "type": [
        "object",
        "null"
      ],
      "properties": {
            ....
        }
         }
}

密钥是两个。始终需要一种类型(“ TaxCode”),而不总是需要“ DB”。

例如:

...
Key:
{
 { Type:"TaxCode"
    ..
 },
 {
    Type:"DB"
    ..
 }
}

OR

...
Key:
{
 { Type:"TaxCode"
    ..
 }
}

是有效的杰森。

...
Key:
{
  {
   Type:"DB"
    ..
   }
}

不是有效的杰森

问题是:"enum": ["TaxCode", "DB"]

我该怎么办? 谢谢!

0 个答案:

没有答案