Может ли JSON Validator проверять кандидатов на наличие определений типов для проверки себя?

У меня есть DML, который поддерживает пользовательские структуры, такие как "customType1" ниже и которые могут быть использованы для определения типа списка свойств:

{
 "types": {
    "customType1" : {
      "var1" : "string",
      "var2" : "int"
    }
    .
    .
    .
 },
 "properties": {
   "prop1" : {
     "type": "customType1",
     "value": {
     "var1" : "Hello",
     "var2" : 123
    },
   "prop2" : {
     "type" : "String",
     "value" : "www.google.com"
    }
    .
    .
    .
 }
}

Можно ли написать схему JSON, которая может оценить prop1чтобы проверить его по структуре, определенной в customType1? Описание пользовательских типов, указанных в types не будет известно априори, только во время оценки.

Если это выходит за рамки возможностей спецификации JSON Schema, есть ли другие предложения, как это проверить?

1 ответ

Вы можете сделать это, используя ссылку JSON:

{
 "types": {
    "customType1" : {
      "var1" : "string",
      "var2" : "int"
    }
    .
    .
    .
 },
 "properties": {
   "prop1" : {
     "$ref" : "#/types/customType1"
    },
   "prop2" : {
     "type" : "String",
     "value" : "www.google.com"
    }
    .
    .
    .
 }
}

это "указатель", обозначающий место схемы свойств.

(Примечание: в схеме JSON мы обычно используем ключевые "определения" вместо "типов" по ​​соглашению).

Другие вопросы по тегам