vit*_*tus 4 php json jsonschema
在属性定义中我需要允许数字或空字符串值,这个表达式是否适用于此目的?
"tprice":{"type":["number",{"enum":[""]}]}
Run Code Online (Sandbox Code Playgroud)
我用来验证数据的库(Jsv4)会为空字符串生成错误:
Invalid type: string
Run Code Online (Sandbox Code Playgroud)
而我试图为这个属性设置零长度字符串.
我认为您的解决方案是anyOf在架构中使用.这是适合您的架构:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"tprice": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 0
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
我用过jsonschemalint.com来测试它.
{
"tprice": 123
}
Run Code Online (Sandbox Code Playgroud)
和
{
"tprice": ""
}
Run Code Online (Sandbox Code Playgroud)
验证就好了.