JSON模式+相对JSON指针:如何验证“确认密码”字段
Posted
技术标签:
【中文标题】JSON模式+相对JSON指针:如何验证“确认密码”字段【英文标题】:JSON schema + relative JSON-pointers: how to verify "confirm password" field 【发布时间】:2018-03-03 03:22:58 【问题描述】:这是我的JSON Schema:
"required": [
"username",
"password",
"confirmPassword"
],
"properties":
"username":
"minLength": 3,
"type": "string"
,
"password":
"minLength": 6,
"type": "string"
,
"confirmPassword":
"const":
"$data": "1/password"
,
"type": "string"
,
"type": "object"
这是我的数据:
"username": "abc",
"password": "asdfasdf",
"confirmPassword": "asdfasdf"
您可以将这些复制粘贴到this online validator 以查看会发生什么。
confirmPassword
字段验证失败并显示错误消息:
值“asdfasdf”与 const 不匹配。
我认为我的relative JSON pointer 有问题,但我不知道正确的语法是什么。
AFAICT,1/password
的意思是“上一层,然后检查 password
属性”,但事实并非如此。什么是正确的语法?
我正在使用的具体实现是 AJV,它说 确实 support relative-JSON-pointers.
【问题讨论】:
@Amy 您链接的规范仅适用于 absolute JSON 指针,不是吗? 【参考方案1】:原来唯一的问题是我忘记将$data
option 设置为true
。例如
const ajv = new Ajv(
allErrors: true,
$data: true,
);
【讨论】:
以上是关于JSON模式+相对JSON指针:如何验证“确认密码”字段的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 中验证 JSON Schema 模式?
如何根据它在 Java 中指定的版本规范验证 json 模式