{ 'a': 343, 'b': 434 }
如果我有一个像上面这样的 json 数据,并且属性“a”和“b”实际上是用户给出的名称,那么它可以是任何字符串。如何创建一个 json 模式来验证这一点?
{ 'a': 343, 'b': 434 }
如果我有一个像上面这样的 json 数据,并且属性“a”和“b”实际上是用户给出的名称,那么它可以是任何字符串。如何创建一个 json 模式来验证这一点?
如果您使用的验证库基于JSON Schema 的相对较新版本,您应该能够使用patternProperties来验证具有用户定义键的属性。
这是一个使用 javascript 库tv4执行验证的快速示例:
var schema = {
"patternProperties": {
"^[a-zA-Z0-9]+$": {
"title": "someUserDefinedPropertyName",
"type": "number"
}
}
};
var valid = { "a": 1234, "b": 5678 };
var invalid = { "a": "1234", "b": 5678 };
alert("Validates? [should be true]: " + tv4.validate(valid, schema));
alert("Validates? [should be false]: " + tv4.validate(invalid, schema));
alert('Variable invalid, error at data path: ' + tv4.error.dataPath + '\n\nError Description:\n' + tv4.error.message);
有关更多信息,我建议阅读上面链接的 Schema 部分,以及查看json-schema.org 上的高级示例。