2
在属性定义中,我需要允许数值或空字符串值,这个表达式是否适合此目的?JSON模式:如何让数字类型的属性为空字符串?
"tprice":{"type":["number",{"enum":[""]}]}
库,即我使用验证数据(Jsv4)为空字符串生成错误:
Invalid type: string
而我尝试设置零长度字符串该属性。
在属性定义中,我需要允许数值或空字符串值,这个表达式是否适合此目的?JSON模式:如何让数字类型的属性为空字符串?
"tprice":{"type":["number",{"enum":[""]}]}
库,即我使用验证数据(Jsv4)为空字符串生成错误:
Invalid type: string
而我尝试设置零长度字符串该属性。
我认为你的解决方案是在模式中使用anyOf
。 这是为你工作模式:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"tprice": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 0
}
]
}
}
}
我用jsonschemalint.com进行测试。
{
"tprice": 123
}
和
{
"tprice": ""
}
验证就好了。
谢谢,我的表达式适用于draft3,我的验证器是draft4,我的数据是php $ _POST数组,我认为我应该使用带字符串的“string”类型。 – vitus 2015-03-26 10:40:49
@vitus我想我不明白你......是否为你工作? – stefankmitph 2015-03-26 11:01:46