아래의 json 예제에서 "Vendor"는 필수이며 일부 값 (minLength = 1)을 가져야하지만 Mode = Ground 인 경우 항상 공백으로 반환되므로 일반적인 json 스키마는 실패합니다 json 응답 아래. 모두 "모드"항상 반환됩니다, JSON 응답에서조건부 Json 스키마 - 응답 종속
{
"Res": {
"Mem": [
{
"Mode": "Flight",
"Vendor": "YP",
"MemNum": "222"
},
{
"Mode": "Ground",
"Vendor": "",
"MemNum": "242"
}
]
}
}
: JSON 응답은 다음과 같습니다. 지정할 수있는 사용자 정의 된 스키마를 만들 수 있습니까? "Mode"= "Ground"일 때 스키마 1로 확인하십시오. 다른 모든 경우에 대해 "모드"는 유효성 검사를 위해 schema2에서 참조를 가져옵니다.
나는 아래 시도했지만 수없는 결과를 원하는 얻을 :
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"required": [
"Res"
],
"properties": {
"Res": {
"type": "object",
"required": [
"Mem"
],
"properties": {
"Mem": {
"type": "array",
"allOf": [
{
"$ref": "#/definitions/Flight"
},
{
"$ref": "#/definitions/Ground"
}
]
}
}
}
},
"definitions": {
"Flight": {
"properties": {
"Mode": {
"enum": [
"Flight"
]
},
"VendorCode": {
"type": "string",
"minLength": 1,
"optional": false
},
"MemNum": {
"type": "string",
"minLength": 1,
"optional": false
}
}
},
"Ground": {
"properties": {
"Mode": {
"enum": [
"Ground"
]
},
"VendorCode": {
"type": "string"
},
"MemNum": {
"type": "string",
"minLength": 1,
"optional": false
}
}
}
}
}
원하는 결과를 달성하는 데 유용 할 수 있습니다 JSON 스키마의 다른 개념이 있습니까?
코드를 올바르게 포맷하십시오. 질문에 형식이 잘못된 코드는 질문이 중요하지 않으며 잠재적 응답자에게 장애물이된다는 메시지를 보냅니다. –
Tom, 포맷을 수정 해 주셔서 감사합니다! – GuruAPI