如何修复json模式以仅在需要时才接受json?

时间:2018-12-24 08:52:27

标签: arrays json object schema

我正在设置JSON模式,当我对其进行测试时,我发现它接受list_of_item中的任何内容,请我错过任何内容了吗?

{
 "type": "object",
  "storeNumber": {
    "type": "number"
  },
  "inventory_ordering_date": {
    "type": "string",
    "format": "date-time"
  },
  "list_of_item": {
    "type": "array",
    "minItems": 1,
    "items": {
      "type": "object",
      "properties": {
        "item_code": {
          "type": "string",
        },
        "quantity": {
          "type": "number",
        },
        "unit": {
          "type": "string",
        },
        "required": [
          "item_code",
          "quantity",
          "unit"
        ]
      }
    }
  },
  "required": [
    "storeNumber",
    "inventory_ordering_date",
    "list_of_item"
  ]
}

如果list_of_item中缺少值,我希望它拒绝它应该只接受具有item_code,数量和单位的项目。

1 个答案:

答案 0 :(得分:0)

知道了,我应该先设置对象的属性,然后完成其余的操作

这是编辑后的代码。

{
  "type": "object",
  "properties": {
    "storeNumber": {
      "type": "integer",
    },
    "inventory_ordering_date": {
      "type": "string",
      "format": "date-time"
    },
    "list_of_item": {
      "type": "array",
      "minItems": 1,
      "items": {
        "properties": {
          "item_code": {
            "type": "number"
          },
          "quantity": {
            "type": "number"
          },
          "unit": {
            "type": "string"
          }
        },
        "required": [
          "item_code",
          "quantity",
          "unit"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "storeNumber",
    "inventory_ordering_date",
    "list_of_item"
  ],
  "additionalProperties": false
}