JSON 스키마에 선언된 속성만 허용
저는 json-schema를 사용하고 있으며, 이 파일에 선언된 속성만 검증을 통과하도록 허용하고 싶습니다.예를 들어 사용자가 json 개체에서 "name" 속성을 전달하면 "name"이 여기에 속성으로 나열되지 않기 때문에 이 스키마에 실패합니다.
나열된 속성만 통과할 수 있는 "필수"와 유사한 기능이 있습니까?
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Accounting Resource - Add Item",
"type": "object",
"properties": {
"itemNumber": {
"type":"string",
"minimum": 3
},
"title": {
"type":"string",
"minimum": 5
},
"description": {
"type":"string",
"minimum": 5
}
},
"required": [
"itemNumber",
"title",
"description"
]
}
이걸 이루기 위해 당신이 해야 할 일은additionalProperties거짓으로.사양은 이쪽
정의 내에서 다음을 제공합니다.
- 모든 필수 필드
"required": [] - 및 세트
"additionalProperties": false
데모:
없이."additionalProperties": false다음과 같습니다.
와 함께"additionalProperties": false다음과 같습니다.
참고로 표준의 v5는 "ban unknown properties" 검증 모드를 설명할 것으로 보입니다.
따라서 이 요건을 포맷의 일부로 하는 것이 아니라(Chris Pitman이 코멘트에서 말한 바와 같이 향후 확장성이 손상됨), 검증자에게 알 수 없는 속성에 오류로 플래그를 지정하도록 지시할 수 있습니다.즉, 개발 시 유용한 초강력 검증 모드와 같습니다.
일부 검증자는 이미 이를 지원하고 있습니다(tv4 등).
var result = tv4.validateMultiple(data, schema, checkRecursive, banUnknownProperties);
이 툴을 사용하여checkRecursive데이터에 순환 참조가 있을 수 있는 경우 사용해야 합니다.banUnknownProperties사용할 필요 없이 원하는 대로 실행할 수 있습니다."additionalProperties":false.
언급URL : https://stackoverflow.com/questions/17530762/only-allow-properties-that-are-declared-in-json-schema
'source' 카테고리의 다른 글
| Node.js에서 발신된 모든 이벤트 듣기 (0) | 2023.04.02 |
|---|---|
| PHP가 JSON을 JQUERY AJAX 호출로 반환 (0) | 2023.03.28 |
| AngularJS 및 ng-grid - 셀 변경 후 데이터를 서버에 자동 저장 (0) | 2023.03.28 |
| IIS를 통해 제공되는 단일 페이지 응용 프로그램 HTML 파일의 캐시를 비활성화하려면 어떻게 해야 합니까? (0) | 2023.03.28 |
| create-react-app을 사용할 때 사용자 지정 빌드 출력 폴더 사용 (0) | 2023.03.28 |