{ 'a': 343, 'b': 434 }
위와 같은 json 데이터가 있고 'a'및 'b'속성은 실제로 사용자가 부여한 이름이므로 임의의 문자열이 될 수 있습니다. 어떻게 이것을 검증 할 json-schema를 만들 수 있습니까?json 스키마가 혼합 속성의 유효성을 검사하는 방법은 무엇입니까?
{ 'a': 343, 'b': 434 }
위와 같은 json 데이터가 있고 'a'및 'b'속성은 실제로 사용자가 부여한 이름이므로 임의의 문자열이 될 수 있습니다. 어떻게 이것을 검증 할 json-schema를 만들 수 있습니까?json 스키마가 혼합 속성의 유효성을 검사하는 방법은 무엇입니까?
사용중인 유효성 검사 라이브러리가 relatively recent version of the JSON Schema을 기반으로 제공되는 경우 patternProperties을 사용하여 사용자 정의 키로 속성의 유효성을 검사 할 수 있어야합니다.
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);
자세한 내용은 제가 위에 링크 된 스키마의 섹션을 읽기뿐만 아니라 advanced examples on json-schema.org을 확인하시기 바랍니다 :
다음은 유효성 검사를 수행하는 자바 스크립트 라이브러리 tv4를 사용하는 간단한 예제입니다.
정말 * any * 속성 이름 일 수있는 경우 "additionalProperties"가 더 적합합니다. 당신은 아마 그 대답에 언급해야합니다. :) – cloudfeet
나는 당신이 할 수 있을지 모르겠지만'[{ "key": "a", "value"343}, { "key": "b", "value" : 434}]' – DanielB