2016-06-26 4 views
0

다음 JSON이 유효하지 않게 만드는 것을 찾으려고합니다. 다음과 같이

http://pastebin.com/QPxEPjMT

오류가 두 번째 스키마 검증 웹 사이트에 로그온이 : 이상한 점은 this 웹 사이트에 유효한 JSON을 통과하지만 여기에 하나

this에 유효하지 않은 스키마 점이다 :

Error when resolving schema reference '#/definitions/identifiable'. 

Path 'definitions.subscription.allOf[0]', line 19, position 17. 

누군가 내 스키마가 잘못된 경우, 또는이는 JSON 스키마 자체에 대한 몇 가지 모호한 규칙인지를 명확히 할 수 있습니까?

+0

http://www.jsonschemavalidator.net/ 웹 사이트에서 "스키마 초안 v3"또는 "스키마 초안 v4"를 선택하고 json이 유효하다고 확인 된 경우 제공했습니다. 또한, jslint.com (내가 사용하는 것)에서 json이 유효합니다. –

+0

@AshwinKrishnamurthy는 응답을 높이 평가하지만 드롭 다운에서 v4를 선택하면 웹 사이트가 기본 스키마를로드합니다. –

+0

사과드립니다. 나는 내가 그것을 놓쳤다라고 생각한다 :) –

답변

0

당신은 루트 정의 수준에서 유형 '식별'의 대상에 대해 정의 된 스키마가 없습니다 :

{ 
    ... 
    "definitions": { 
     ... 
     "identifiable": { 
       "$schema": "http://json-schema.org/draft-04/schema#", 
       "id": "http://api.sprint.com/schema/identifiable#", 
       "title": "Identifiable Schema", 
       "type": "object", 
       "properties": { 
        "id": { 
         "type": "string", 
         "description": "READ ONLY. The id of the resource." 
        } 
       }, 
       "required": [ 
        "id" 
       ], 
       "additionalProperties": true 
     ... 
    } 
... 
} 

을하지만 당신이 유형 '구독'의 대상의 당신의 정의 내에 정의해야합니다. 그래서, 당신은 계획에서이 참조가 가리키는 :

[root]/definitions/identifiable 

하지만 당신은 그것을 가지고 :

[root]/definitions/subscriptions/definitions/identifiable 

, 참조를 해결하시기 바랍니다. 두 사이트 모두 귀하의 스키마를 잘못 표시했습니다.