希望这对其他人来说不是很明显,因为我发现https://json-schema.org/上的文档缺乏更精细的细节。我得到一个JSON块,有一些属性可以是null
或string
。如何在JSON模式中指定(由JSON解析)。. NET的JsonSchema.Parse
方法),一个值可以是null
类型或string
类型?
是否有一些简单的我错过了像提供数组的类型?例如,
"member_region": { "type": [ "string", null ] } // this throws an exception
另外,还有人有比jsonschema.org更好的JSON模式详细信息来源吗?我在哪里可以找到更多的例子?我不想阅读一份大文档/规范来寻找一些可以在10行示例中轻松演示的内容。
From https://json-schema.org/understanding-json-schema/reference/type.html
type
关键字可以是字符串或数组:
- 如果是字符串,则是上述基本类型之一的名称。
- 如果是数组,则必须是字符串的数组,其中每个字符串是一个基本类型的名称,并且每个元素是唯一的。在本例中,如果JSON片段匹配任何给定类型
的,则该JSON片段有效。
同一页还列出了定义的数据类型名称,包括string
和null
。
试题:
"member_region": { "type": ["string", "null"] }
如果你选择数组语法,就可以扩展爆炸药丸的答案:
"member_region": { "type": [ "string", "null" ] } // this works
,因为你在陈述一个类型,而不是一个示例/值。你不应该写:
"member_region": { "type": [ "string", null ] } // this throws an exception
anyOf也可能有用。
"member_region": {
"anyOf": [
{ "type": "string" },
{ "type": "null" },
]
}
["string", "null"]如果不使用RegEx模式也可以。
我正在使用日期字段验证器:
(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d
允许MM/dd/yyyy模式,但是对于空字符串(")