json模式如何验证混合属性?

json模式如何验证混合属性?,json,validation,jsonschema,Json,Validation,Jsonschema,如果我有一个类似于上面的json数据,并且属性“a”和“b”实际上是用户给出的名称,因此可以是任何字符串。如何创建一个json模式来验证这一点?如果您使用的验证库基于,您应该能够使用来验证具有用户定义键的属性 下面是一个使用javascript库执行验证的快速示例: { 'a': 343, 'b': 434 } 要了解更多信息,我建议阅读上面链接的模式部分,并查看。我不确定您是否可以,但您可以将其翻译为可以的内容,例如[{“key”:“a”,“value”343},{“key”:“b”,“va

如果我有一个类似于上面的json数据,并且属性“a”和“b”实际上是用户给出的名称,因此可以是任何字符串。如何创建一个json模式来验证这一点?

如果您使用的验证库基于,您应该能够使用来验证具有用户定义键的属性

下面是一个使用javascript库执行验证的快速示例:

{ 'a': 343, 'b': 434 }

要了解更多信息,我建议阅读上面链接的模式部分,并查看。

我不确定您是否可以,但您可以将其翻译为可以的内容,例如
[{“key”:“a”,“value”343},{“key”:“b”,“value”:434}]
如果它确实可以是任何属性名称,那么就可以是“additionalProperties”更适用。你可能应该在回答中提到这一点。:)
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);