반응형
oneOf 개체에 대한 Json 스키마 예제
두 가지 다른 객체 유형을 검증하는 스키마를 구축하여 one Of가 어떻게 작동하는지 알아보려고 합니다.예를 들어, 사람(이름, 성, 스포츠)과 차량(종류, 비용)입니다.
다음은 몇 가지 샘플오브젝트입니다
{"firstName":"John", "lastName":"Doe", "sport": "football"}
{"vehicle":"car", "price":20000}
문제는 내가 무엇을 잘못했는지, 어떻게 그것을 고칠 수 있는가이다.스키마는 다음과 같습니다.
{
"description": "schema validating people and vehicles",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"required": [ "oneOf" ],
"properties": { "oneOf": [
{
"firstName": {"type": "string"},
"lastName": {"type": "string"},
"sport": {"type": "string"}
},
{
"vehicle": {"type": "string"},
"price":{"type": "integer"}
}
]
}
}
이 파서로 유효성을 확인하려고 하면:
https://json-schema-validator.herokuapp.com/
다음의 에러가 표시됩니다.
[ {
"level" : "fatal",
"message" : "invalid JSON Schema, cannot continue\nSyntax errors:\n[ {\n \"level\" : \"error\",\n \"schema\" : {\n \"loadingURI\" : \"#\",\n \"pointer\" : \"/properties/oneOf\"\n },\n \"domain\" : \"syntax\",\n \"message\" : \"JSON value is of type array, not a JSON Schema (expected an object)\",\n \"found\" : \"array\"\n} ]",
"info" : "other messages follow (if any)"
}, {
"level" : "error",
"schema" : {
"loadingURI" : "#",
"pointer" : "/properties/oneOf"
},
"domain" : "syntax",
"message" : "JSON value is of type array, not a JSON Schema (expected an object)",
"found" : "array"
} ]
이것을 시험해 보세요.
{
"description" : "schema validating people and vehicles",
"type" : "object",
"oneOf" : [
{
"type" : "object",
"properties" : {
"firstName" : {
"type" : "string"
},
"lastName" : {
"type" : "string"
},
"sport" : {
"type" : "string"
}
}
},
{
"type" : "object",
"properties" : {
"vehicle" : {
"type" : "string"
},
"price" : {
"type" : "integer"
}
},
"additionalProperties":false
}
]
}
하나는 스키마 내에서 사용해야만 작동합니다.
속성 내에서는 원하는 효과가 없는 "One Of"라는 또 다른 속성과 같습니다.
언급URL : https://stackoverflow.com/questions/25014650/json-schema-example-for-oneof-objects
반응형
'IT' 카테고리의 다른 글
스프링 부트 @autowired가 작동하지 않습니다.클래스는 다른 패키지로 되어 있습니다. (0) | 2023.03.29 |
---|---|
Greasemonkey 스크립트에서 XMLHttpRequests를 대행 수신하려면 어떻게 해야 합니까? (0) | 2023.03.29 |
React.js의 선언과 명령의 차이는 무엇입니까? (0) | 2023.03.29 |
유형 스크립트 - React 구성 요소의 "이름 찾을 수 없음" 오류 (0) | 2023.03.29 |
inline 조건부(angular.display)를 지정합니다. (0) | 2023.03.29 |