表示,对于给定的 属性 值,应该使用 json 模式存在同名的 属性?
Express that, for a given property value, a property with the same name should exist using json schema?
我正在尝试验证 json 文件,其中的一个元素有一个 属性,其中包含一个应该存在于 json 的另一部分的值。我正在使用 jsonschema Draft 07。
这是一个简单的小示例,展示了我试图在我的数据中验证的场景。
{
"objects": {
"object1": {
"colorKey": "orange"
}
},
"colors": {
"orange": {
"red": "FF",
"green": "AF",
"blue": "00"
}
}
}
如何验证 colorKey 的 'value'(在本例中为 'orange')确实作为 'colors' 对象的 属性 存在?数据未存储在数组中,只是定义了属性。
对于官方 JSON 架构...
您无法检查数据中的键是否与数据的值相同。
您无法从 JSON 实例中提取数据值以用于 JSON 架构。
也就是说,最受欢迎的验证器 ajv 实现了一些非官方扩展。其中之一是 $data.
示例取自:https://github.com/epoberezkin/ajv#data-reference
var ajv = new Ajv({$data: true});
var schema = {
"properties": {
"smaller": {
"type": "number",
"maximum": { "$data": "1/larger" }
},
"larger": { "type": "number" }
}
};
var validData = {
smaller: 5,
larger: 7
};
ajv.validate(schema, validData); // true
这对使用您的架构的任何其他人都不起作用。
我正在尝试验证 json 文件,其中的一个元素有一个 属性,其中包含一个应该存在于 json 的另一部分的值。我正在使用 jsonschema Draft 07。
这是一个简单的小示例,展示了我试图在我的数据中验证的场景。
{
"objects": {
"object1": {
"colorKey": "orange"
}
},
"colors": {
"orange": {
"red": "FF",
"green": "AF",
"blue": "00"
}
}
}
如何验证 colorKey 的 'value'(在本例中为 'orange')确实作为 'colors' 对象的 属性 存在?数据未存储在数组中,只是定义了属性。
对于官方 JSON 架构... 您无法检查数据中的键是否与数据的值相同。 您无法从 JSON 实例中提取数据值以用于 JSON 架构。
也就是说,最受欢迎的验证器 ajv 实现了一些非官方扩展。其中之一是 $data.
示例取自:https://github.com/epoberezkin/ajv#data-reference
var ajv = new Ajv({$data: true});
var schema = {
"properties": {
"smaller": {
"type": "number",
"maximum": { "$data": "1/larger" }
},
"larger": { "type": "number" }
}
};
var validData = {
smaller: 5,
larger: 7
};
ajv.validate(schema, validData); // true
这对使用您的架构的任何其他人都不起作用。