JSON Schema - 다른 필드의 값을 기준으로 필드를 지정해야 합니다.
이것이 스키마 드래프트 03에서 가능한지 궁금합니다.의존관계는 다른 곳에서 작업하고 있습니다.아마도 그것들을 특정하기 위해 필요한 것은 창조적인 사용일 것입니다.required
특정 분야의 특성입니다.
현재 최선의 시도(실패하지 않음)를 통해 제가 무엇을 원하는지 알 수 있을 것입니다.기본적으로 필요한 값을 지정하고 다른 필드에 특정 값이 있는 경우 옵션 값을 지정합니다.
{
"description" : "An address...",
"type" : "object",
"properties" : {
"postcode": {
"type" : "string",
// postcode should be required by default
"required" : true,
// postcode shouldn't be required if the country is new zealand
"dependencies" : {
"country" : {
"enum" : ["NZ", "NZL", "NEW ZEALAND"]
},
"postcode" : {
"required" : false
}
}
},
"country": {
"type" : "string",
"enum" : [
// various country codes and names...
],
"default" : "AUS"
}
}
}
이것은 드래프트 버전 3에서는 확실히 가능합니다.허용된 국가의 전체 목록이 있으므로 다음과 같은 작업을 수행할 수 있습니다.
{
"type": [
{
"title": "New Zealand (no postcode)",
"type": "object",
"properties": {
"country": {"enum": ["NZ", "NZL", "NEW ZEALAND"]}
}
},
{
"title": "Other countries (require postcode)",
"type": "object",
"properties": {
"country": {"enum": [<all the other countries>]},
"postcode": {"required": true}
}
}
],
"properties": {
"country": {
"type" : "string",
"default" : "AUS"
},
"postcode": {
"type" : "string"
}
}
}
따라서 스키마에 대해 우편번호가 필요한 국가용과 필요하지 않은 국가용 두 가지 하위 유형을 정의합니다.
EDIT - v4는 매우 유사합니다.최상위 수준 이름 바꾸기"type"
로 배열하다."oneOf"
.
초안 4에 대한 솔루션을 찾고 계신 분은dependencies
키워드와 함께enum
키워드:
{
"type": "object",
"properties": {
"play": {
"type": "boolean"
},
"play-options": {
"type": "string"
}
},
"dependencies": {
"play-options": {
"properties": {
"play": {
"enum": [true]
}
}
}
}
}
이렇게 해서play-options
항상 필요함play
가치가 있다true
.
최신 스키마에서는oneOf
이 일을 하는 것을 조건으로 합니다.
{
"description" : "An address...",
"type" : "object",
"properties" : {
"postcode": {
"type" : "string"
},
"country": {
"type" : "string",
"enum" : [
// various country codes and names...
],
"default" : "AUS"
}
},
"oneOf": [
{
"properties": {
"country": { "enum" : ["NZ", "NZL", "NEW ZEALAND"] }
}
},
{ "required": ["postcode"] }
]
}
그oneOf
조건을 사용하려면 어레이의 조건 중 하나가 참이어야 합니다.
방금 03 버전의 스펙을 살펴보았는데, 당신이 설명하는 것은 불가능할 것 같습니다."단순 의존성"이 절대 아니며 "Schema Dependency"의 설명에는 자산의 가치를 고려하는 방법이 전혀 없습니다.
당신에게 필요한 것은 "조건부 스키마 의존성"인 것 같습니다.
여기서는 심플과 스키마의 의존관계로 실현 가능한 기능에 대해 설명합니다.http://groups.google.com/group/json-schema/msg/8145690ebb93963b
조건부 종속성을 지원할 계획이 있는지 해당 그룹에 문의할 수 있습니다.
언급URL : https://stackoverflow.com/questions/9029524/json-schema-specify-field-is-required-based-on-value-of-another-field
'code' 카테고리의 다른 글
DESCRIBE 명령을 사용하지 않고 Oracle에서 테이블을 기술하려면 어떻게 해야 합니까? (0) | 2023.02.16 |
---|---|
리액트 훅을 사용하여 다음 렌더링에 집중하는 방법 (0) | 2023.02.16 |
새 개체가 기존 개체와 오버레이/마지되도록 MongoDB 개체를 부분적으로 업데이트하려면 어떻게 해야 합니까? (0) | 2023.02.16 |
연동 테스트용 스프링부트 인증 (0) | 2023.02.16 |
Wordpress Rest API를 사용하여 현재 로그인 사용자를 얻는 방법은 무엇입니까? (0) | 2023.02.16 |