希望这对其他人来说并不明显,因为我发现http://json-schema.org/的文档缺乏更精细的细节。我正在获得一个json块,其中包含一些可以为null或字符串的属性。如何在json模式(由json.NET的JsonSchema.Parse
方法解析)中指定值可以是null类型还是类型字符串?
是否有一些简单的东西,比如提供类型的数组?例如;
"member_region": { "type": [ "string", null ] } // this throws an exception
另外,有没有人比json-schema.org有更好的json架构细节来源?我在哪里可以找到更多的例子?我不想阅读一篇大文档/规范来找到一些可以在10行示例中轻松演示的内容。
答案 0 :(得分:61)
来自http://json-schema.org/latest/json-schema-validation.html#anchor79
此关键字的值必须是字符串或数组。如果它是一个数组,那么数组的元素必须是字符串,并且必须是唯一的。
字符串值必须是核心规范定义的七种基本类型之一。
然后我们引用类型:http://json-schema.org/latest/json-schema-core.html#anchor8
列出字符串和null。尝试:
"member_region": { "type": [ "string", "null" ] }
答案 1 :(得分:1)
如果使用数组语法,则扩展爆炸药的答案:
"member_region": { "type": [ "string", "null" ] } // this works
因为您要说明的类型不是示例,所以不应该使用:
"member_region": { "type": [ "string", null ] } // this throws an exception
答案 2 :(得分:-1)
["string", "null"] 如果您不使用 RegEx 模式,则可以使用。
我正在使用日期字段验证器:
(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\\d\\d
允许使用 MM/dd/yyyy 模式,但它会在空字符串 ("") 处抛出不匹配错误