问题描述
根据JSON-Schema 7.0 String section,我可以使用"relative-json-pointer"
来确保属性值与父键完全匹配。
在Relative JSON Pointers的示例部分(5.1)中,它表明“上一层”并获取键值是"0#"
。
给出以下JSON文档:
{
"valid": {
"name": "valid"
},"invalid": {
"name": "invalid,because this value is not the same value as the parent key"
}
}
以下json模式应捕获"invalid"
对象:
{
"$schema": "http://json-schema.org/draft-07/schema#","type": "object","additionalProperties": {
"type": "object","required": ["name"],"properties": {
"name": {
"type": "string","json-pointer": "0#"
}
}
}
}
我确定json模式是正确的,因为它将捕获以下JSON文档中的两个对象"invalid2"
和"invalid3"
:
{
"valid": {
"name": "valid"
},because this value is not the same value as the parent key"
},"invalid2": { },"invalid3": { "name": 2 }
}
我已经使用ajv-cli 3.3.0和python jsonschema 3.2.0进行测试。但是,没有一种验证实现可以捕获"invalid"
对象。两种实现都声称完全支持JSON Schema草案7。
解决方法
我可以使用“ relative-json-pointer”来确保属性值 是父键的完全匹配。
我不确定您如何阅读该部分,但这根本不是我要说的。
您在文档站点上引用的那一部分列出了format
关键字的一组内置可能值。
它对您要验证的值(例如relative-json-pointer
)不起作用。
您想做什么?