ProgramingTip

JSON 스키마에 선언 된 속성 만 허용

bestdevel 2020. 12. 25. 10:30
반응형

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위해으로 설정 되어 있어도 믿습니다 . 여기 에서 사양을 참조 하십시오.


참고로-표준 v5가 "알 수없는 속성 금지" 유효성 검사 모드를 설명하는 것처럼 보입니다 .

(Chris Pitman이 의견에서 말했듯이 형식의 일부로 만드는 대신), 유효성 검사기 에게 알 수없는 속성을 오류로 표시 하도록 지시 할 수 있습니다. 따라서 dev에 유용한 매우 엄격한 유효성 검사 모드와 가변적입니다.

일부 특정 인은 이미이를 지원합니다 (예 : tv4 ) :

var result = tv4.validateMultiple(data, schema, checkRecursive, banUnknownProperties);

도구를이 checkRecursive사용하면 데이터에 순환 참조가있을 수 있고를 사용하지 않고도 원하는 banUnknownProperties작업을 정확하게 수행 할 있는 경우을 사용해야 "additionalProperties":false합니다.


객체의 속성을 엄격 하게만합니다 : https://github.com/ruby-json-schema/ruby-json-schema/strictly-validate-an-objects-properties

참조 URL : https://stackoverflow.com/questions/17530762/only-allow-properties-that-are-declared-in-json-schema

반응형