使用JSON Schema检查唯一属性

时间:2016-05-04 08:44:25

标签: json validation json.net

我有结构

的JSON
{
  "Items": [
    {
      "properties": {
        "property1": {
              "field1": "*",
              "field2": "*"
        },
        "property2": {
              "field3": "*",
              "filed5": "*"
        }
      }
    }
  ]
}

properties可以有不同的项目(例如property1,property2 ......)

我为这个结构生成了一个JSON Schema

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "/",
  "type": "object",
  "properties": {
    "Items": {
      "id": "Items",
      "type": "array",
      "items": {
        "id": "0",
        "type": "object",
        "properties": {
          "properties": {
            "id": "properties",
            "type": "object",
            "properties": {
              "property1": {
                "id": "property1",
                "type": "object",
                "properties": {
                  "field1": {
                    "id": "field1",
                    "type": "string"
                  },
                  "field2": {
                    "id": "field2",
                    "type": "string"
                  }
                }
              },
              "property2": {
                "id": "property2",
                "type": "object",
                "properties": {
                  "field3": {
                    "id": "field3",
                    "type": "string"
                  },
                  "filed5": {
                    "id": "filed5",
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      },
      "additionalItems": false
    }
  }
}

但是当我用两个具有相同名称的属性(下面的JSON中的property1)检查JSON时,它不会通知,属性应该是唯一的。

{
  "Items": [
    {
      "properties": {
        "property1": {
              "field1": "*",
              "field2": "*"
        },
        "property1": {
              "field1": "*",
              "field2": "*"
        },
        "property2": {
              "field3": "*",
              "filed5": "*"
        }
      }
    }
  ]
}

有什么方法可以解决这个问题吗?

0 个答案:

没有答案