Как следует ссылаться на схему JSON, которой соответствует объект JSON? - PullRequest
0 голосов
/ 04 октября 2019

Был еще один вопрос, похожий на тот, который я задаю здесь ( Можете ли вы указать URI схемы в документе JSON, который соответствует схеме JSON? ), который был помечен как дубликат ( Как ссылаться на схему json, которая является массивом верхнего уровня ), но у меня есть нюансный вариант вопроса.

Хотя кажется, что в определении схемы JSON ничего нет ()https://json -schema.org / ), есть ли лучший способ, которым люди следуют в отношении указания в объекте / документе JSON, какой JSON-схеме он соответствует (или должен соответствовать)?

Было бы неправильно ссылаться на схему с помощью тега $ schema в объекте / документе JSON? Похоже, что ссылка на схему, которой она соответствует, также была бы хорошим способом для «версии» объектов / документов JSON.

1 Ответ

0 голосов
/ 04 октября 2019

Я очень сомневаюсь, что есть «приемлемый» ответ на этот вопрос.

Ничто не мешает вам использовать атрибут $ schema как часть вашего личного соглашения.

Есть некоторый реальный прецедент этому. Некоторые шаблоны быстрого запуска Azure используют схему $ для ссылки на схему JSON, которой они придерживаются, например: https://github.com/Azure/azure-quickstart-templates/blob/master/101-azure-bastion/azuredeploy.parameters.json (благодаря Mark T за его комментарий)

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
      "bastion-host-name": {
        "value": "GEN-UNIQUE-8"
    },
      "location": {
        "value": "southcentralus"
    }
  }
}

Однако сиз-за отсутствия официального руководства нам, возможно, следует просто признать, что концепция схема-экземпляр (взятая из XSD) не очень подходит для облегченного языка определений, такого как jsonschema.

Мне было бы интересно понять ваш вариант использования, где обязательным является явное связывание экземпляров JSON с их схемами.

...