我正在尝试编写一个用于电话号码的jsonschema,它是一个数字,应该等于10位数。为此,我编写了一个json模式,如下所示
{"title":"Schema","description":"Schema","type":"object","properties":{"phone_number":{"type":"number","pattern":"^[0-9]{10}$"}}}.我的请求是{"phone_number":123481}
理想情况下,我的json模式应该抛出一个异常,告诉我phone_number不是10位数,但是没有抛出错误。有人能告诉我这段代码有什么问题吗。
发布于 2020-08-01 16:57:00
JSON模式验证规范草案在“String的验证关键字”下面列出了pattern。因此,如果要验证电话号码,则必须将其记录为strings,而不是numbers。
换句话说,您的模式应该是
{"title":"Schema","description":"Schema","type":"object","properties":{"phone_number":{"type":"string","pattern":"^[0-9]{10}$"}}}.您的请求JSON必须是{"phone_number":"123481"}。
在某些地方(特别是在英国),电话号码可以以零开头,但number类型不能存储前导零。此外,例如,123和0123作为电话号码可能存在差异,如果使用number类型,您将无法区分这两种类型之间的区别。
https://stackoverflow.com/questions/63207660
复制相似问题