2016-06-26 4 views
0

Я пытаюсь найти то, что делает следующий JSON недействительным. Странно то, что она проходит от действительного JSON в this сайта, но недопустимо в this один

Вот схема:

http://pastebin.com/QPxEPjMT

ошибка регистрируется на втором сайте проверки схемы заключается в следующем:

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

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

Может кто-то выяснить, является ли неправильно моя схема или речь идет о какой-то неоднозначное правило в самой JSON Schema?

+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 

Пожалуйста, исправить ссылку. BTW, оба сайта маркируют вашу схему недействительными.

Смежные вопросы