{ 'a': 343, 'b': 434 }
上記のようなjsonデータがあり、プロパティ「a」と「b」が実際にはユーザーが付けた名前である場合、それは任意の文字列にすることができます。これを検証するために json-schema を作成するにはどうすればよいですか?
{ 'a': 343, 'b': 434 }
上記のようなjsonデータがあり、プロパティ「a」と「b」が実際にはユーザーが付けた名前である場合、それは任意の文字列にすることができます。これを検証するために json-schema を作成するにはどうすればよいですか?
使用している検証ライブラリが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 で高度な例を確認することもお勧めします。