2016-09-09 4 views
1

는 내가 질문을 NPM ajv스위치 (V5 제안)

에 대한 초보자를 해요 : 방법 "스위치"많은 개체 JSON에서? 예 :

var schema = { 
    "type": "object", 
    "switch": [ 
     { 
      "if": { 
       "properties": { 
        "powerLevel": {"constant": false} 
       } 
      }, 
      "then": { 
       "required": ["disbelief"] 
      } 
     }, 
     { 
      "then": { 
       "required": ["confidence"] 
      } 
     } 
    ], 
    "switch": [ 
     { 
      "if": { 
       "properties": { 
        "power": {"constant": false} 
       } 
      }, 
      "then": { 
       "required": ["disb"] 
      } 
     }, 
     { 
      "then": { 
       "required": ["conf"] 
      } 
     } 
    ] 
}; 

나는이 link

에 그냥 끝 스위치를 확인있어 위의 스키마를 테스트합니다. 도와주세요! 감사!

답변

1

같은 개체에서 두 개의 키워드를 전환 할 수 없습니다. 당신이 allOf이 실행 하는가는, oneOf 그들 사이의 중복 키워드를 포함하는 두 스키마를 병합하는 키워드를 사용할 수있는 일반적인 경우에

{ 
    "type": "object", 
    "switch": [ 
     { 
      "if": { "properties": { "powerLevel": {"constant": false} } }, 
      "then": { "required": ["disbelief"] } 
     }, 
     { 
      "if": { "properties": { "power": {"constant": false} } }, 
      "then": { "required": ["disb"] } 
     }, 
     { 
      "then": { 
       "oneOf": [ 
        { "required": ["confidence"] }, 
        { "required": ["conf"] } 
       ] 
      } 
     } 
    ] 
} 

을 : 당신은 하나 개의 스위치에서 "경우"를 병합 할 수 있습니다이 특정 인스턴스에서

.

+0

감사합니다 .... : D – tile