0

JSON 스키마 검사기는 객체의 하위 객체가 기본값이지만 부모 객체가없는 경우를 어떻게 처리해야합니까?JSON 스키마 유효성 검사에서 하위 개체의 기본값을 처리하는 방법은 무엇입니까?

는 다음 JSON에 대해 다음 스키마를

{ 
    "type": "object", 
    "properties": { 
     "element": { 
      "type": "object", 
      "properties": { 
       "number" : { "type": "integer", "default": 15 } 
      } 
     } 
    } 
} 

인증 됨 상상 : {}를가 {}의 결과입니다.

하지만

{ 
    "element": { 
     "number": 15 
    } 
} 

초래해서는 안된다.

default 키워드를 어떻게 해석해야합니까? 표준에서 해당 줄을 읽었지만 더 이상 나를 도왔습니다.

+0

여기에서 문제가 발생했습니다 : https://github.com/json-schema-org/json-schema- spec/issues/200을 참조하십시오. –

답변

1

인스턴스 유효성 검사는 "valid"또는 "invalid"만 반환합니다. JSON 스키마 유효성 검사는 어떤 식 으로든 인스턴스를 변경하거나 새 인스턴스를 "결과"로 변경하지 않습니다.

"기본값"은 다른 사람들에게 다른 것을 의미 할 수있는 (그리고 허용되는) 상당히 일반적인 메타 데이터 키워드입니다. 존재하지 않을 때 값을 채울 수 있다는 의미는 아닙니다. 그것은 적어도 당신이 그것을 결정할 때 초기 값을 추측 할 수 있다는 것을 의미합니다.

"title"및 "description"과 마찬가지로 "default"키워드는 주로 사용자 인터페이스를 대상으로합니다.

+0

내 경우에는 기본값 (config-files)이 유용 할 것 같습니다. 또한 기본값이있는 경우 누락 된 요소를 채 웁니다. 유효성 검사기가 인스턴스를 수정하면 안된다는 것을 어디에서 읽습니까? –

+0

Validator는 몇 가지 규칙에 따라 인스턴스를 수정하는 등의 추가 기능을 가질 수 있습니다. 그러나 유효성 검사는 유효/무효만을 반환해야합니다 (대부분의 유효성 검사기는 해결할 문제 목록도 반환합니다). – awwright

0

좋은 질문입니다 ..

그러나 it.You 기본 values.See 당신에게

filterType: { 
      type: 'String', 
      required: true, 
      enum: ["Accounts", "portfolios"] 
     } 
그것의 스냅 샷을 제공 할 수 있습니다 아래의 예를 열거 키워드를 사용할 수 있습니다에 대한 간단한 해결책이있다

필드에이 두 가지 값 중 하나가 포함되어 있어야합니다.이 설정은 ... 당신에게 도움이 될 것이라고 생각합니다.

+0

'required'는 존재한다면, draft4에 따라 배열이어야합니다. http://json-schema.org/latest/json-schema-validation.html#rfc.section.5.15 –

+0

필수 키워드는 json의 필수 필드로 지정해야합니다. ** 필수로 설정된 해당 필드에 값을 지정해야 함을 의미합니다. true ** – Trojan

+0

어떤 스키마 스펙을 참조합니까? –