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

上記のようなjsonデータがあり、プロパティ「a」と「b」が実際にはユーザーが付けた名前である場合、それは任意の文字列にすることができます。これを検証するために json-schema を作成するにはどうすればよいですか?

4

1 に答える 1

2

使用している検証ライブラリが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);

詳細については、上記のリンクにあるスキーマのセクションを読むことをお勧めします。また、json-schema.org で高度な例を確認することもお勧めします。

于 2013-07-02T06:21:34.810 に答える