指定一个值,该值可以是字符串,也可以是带有JSON模式的null

指定一个值,该值可以是字符串,也可以是带有JSON模式的null,json,json.net,jsonschema,Json,Json.net,Jsonschema,希望这对其他人来说不是很明显,因为我发现网站上的文档缺少更精细的细节。我得到了一个JSON块,其中的一些属性可以是null或string。在JSON模式(由JSON.NET的JsonSchema.Parse方法解析)中,如何指定值的类型可以是null或string 我是否缺少一些简单的东西,比如为类型提供数组?比如, "member_region": { "type": [ "string", null ] } // this thro

希望这对其他人来说不是很明显,因为我发现网站上的文档缺少更精细的细节。我得到了一个JSON块,其中的一些属性可以是
null
string
。在JSON模式(由JSON.NET的
JsonSchema.Parse
方法解析)中,如何指定值的类型可以是
null
string

我是否缺少一些简单的东西,比如为类型提供数组?比如,

"member_region": { "type": [ "string", null ] } // this throws an exception
还有,有谁比JSON-Schema.org有更好的JSON模式详细信息源吗?在哪里可以找到更多的示例?我不想阅读一个大文档/规范来找到一些可以在10行示例中轻松演示的内容。

From

此关键字的值必须是字符串或数组。如果是数组,则数组的元素必须是字符串并且必须是唯一的

字符串值必须是核心规范定义的七种基本类型之一

然后我们提到类型:

它列出字符串和null。尝试:

"member_region": { "type": ["string", "null"] }

如果您选择数组语法,请在以下情况下进行扩展:

"member_region": { "type": [ "string", "null" ] } // this works
因为您是在说明类型,而不是示例/值。你不应该去:

 "member_region": { "type": [ "string", null ] } // this throws an exception
如果不使用正则表达式模式,[“string”,“null”]将起作用

我正在使用日期字段验证程序:

    (0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\\d\\d 

要允许MM/dd/yyyy模式,但它将在空字符串(“”)处引发不匹配错误,这是唯一适用于Azure逻辑应用程序架构的解决方案。Visual Studio代码也可以识别此解决方案。“string,null”不起作用,但[“string”,“null”]是的。看起来大约一年前有人改变了这个答案。我把它改回了正确的答案。这是一个指向当前规范中位置的更新链接:空字符串不等同于JSON中的
null
。实际上,我用以下内容解决了这个问题:((0[1-9]| 1[012])[-/.](0[1-9]|[12][0-9]| 3[01])[-/.](19[124; 20)\\d)*?