首页 > 解决方案 > JSON 模式允许日期或空字符串

问题描述

我需要定义一个 JSON 模式,其中输入可以是日期或空字符串。

我当前的 JSON 模式是

{
    "type": "object",    
    "required": [        
        "FirstName",        
        "DateOfBirth"
    ],
    "properties": {
        "FirstName": {
            "type": "string"
        },        
        "DateOfBirth": {            
            "type": "string", 
            "format": "date"
        }
    }
}

这允许

{    
    "FirstName": "Alex",
    "DateOfBirth": "1980-10-31"
}

但不是

{    
    "FirstName": "Alex",
    "DateOfBirth": ""
}

如何定义 JSON 模式,以便 DateOfBirth 允许日期和空字符串。

标签: json

解决方案


用于anyOf允许空字符串:

{
  "type": "object",
  "required": [
    "FirstName",
    "DateOfBirth"
  ],
  "properties": {
    "FirstName": {
      "type": "string"
    },
    "DateOfBirth": {
      "anyOf": [
        {
          "type": "string",
          "format": "date"
        },
        {
          "type": "string",
          "maxLength": 0
        }
      ]
    }
  }
}

推荐阅读