Ошибка форматирования JSON $ref

Я пытаюсь найти, что делает следующий JSON недействительным. Странно то, что он выдается за действительный JSON на этом веб-сайте, но недействителен на этого

Вот схема:

http://pastebin.com/QPxEPjMT

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

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

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

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


person Parth Mody    schedule 26.06.2016    source источник
comment
На указанном вами веб-сайте jsonschemavalidator.net, если вы выберете черновик схемы v3 или черновик схемы v4 и json будет проверен. настолько хорошо. Кроме того, в jslint.com (это то, что я использую) ваш json действителен.   -  person Ashwin Krishnamurthy    schedule 26.06.2016
comment
@AshwinKrishnamurthy ценит ответ, но когда вы выбираете v4 из раскрывающегося списка, веб-сайт загружает некоторую схему по умолчанию.   -  person Parth Mody    schedule 26.06.2016
comment
Мои извенения. Кажется, я пропустил это :)   -  person Ashwin Krishnamurthy    schedule 26.06.2016


Ответы (1)


У вас нет схемы, определенной для объекта типа "идентифицируемый" на корневом уровне определений:

 {
    ...
    "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

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

person LaoR    schedule 24.07.2017