JSON SCHEMA:我们可以对类型执行/或(string / int)吗?

时间:2014-01-02 15:53:20

标签: json types jsonschema

我正在制作一个模式来验证联系信息 在电话号码验证中,我们有一个国家/地区代码 我真的希望有一种方法可以让国家/地区代码成为stringinteger

来自不同国家/地区的用户通知我,国家/地区代码中有时会出现有意义的非整数字符(例如“+”)。话虽如此,字符串是有道理的 另一方面,如果有人提供国家代码作为int,比如...... 33(法国)之类的东西,我觉得抛出失败警报并迫使他们有点荒谬,几乎是自命不凡将其转换为字符串并将其重新发送为"33"

我想强制执行类型约束以确保某人不会尝试发送对象或数组,但我需要允许它成为stringinteger之一。<登记/> 怎么办呢?

2 个答案:

答案 0 :(得分:1)

您可以使用以下方式验证多种类型:

"type": ["integer", "string"]

更多信息:https://cswr.github.io/JsonSchema/spec/multiple_types/

答案 1 :(得分:0)

您有多种选择,请look at the docs

  • 使用pattern属性,并使用正则表达式强制执行有效代码。
  • 将anyOf与两个模式一起使用。每个模式都将验证整数或字符串类型。
  • 如果您拥有所有国家/地区代码(非常容易获得),则可以使用枚举列表强制执行确切的值。