Как получить генератор JSON.NET JSchema для отображения атрибута AdditionalProperties в схеме JSON - PullRequest
0 голосов
/ 24 мая 2018

Я использую JSON.NET JSchema Generator для создания схем на основе классов, украшенных атрибутами аннотации данных.Я использую генератор следующим образом:

var generator = new JSchemaGenerator();
generator.ContractResolver = new CamelCasePropertyNamesContractResolver();
generator.SchemaIdGenerationHandling = SchemaIdGenerationHandling.TypeName;
var schema = generator.Generate(typeof(myType));
string jsonSchema = schema.ToString();

Это генерирует пример схемы вроде:

{
     "$id": "myType",
     "definitions": {
          "mySubType" : {
              "$id": "mySubType",
              "type": [
                   "object",
                   "null"
              ],
              "properties": {
                  "name": {
                     "type: "string"
                  }
              },
              "required": [
                  "name"
              ]
          }
     },
     "type": "object",
     "properties": {
         "name": {
            "type": "string"
         },
         "details": {
            "$ref": "mySubType"
         }
      },
      "required": [
          "name",
          "details"
      ]
}

I хочу, чтобы мог генерировать схему, котораявключает в себя атрибут дополнительных свойств для myType и mySubType, например:

{
     "$id": "myType",
     "definitions": {
          "mySubType" : {
              "$id": "mySubType",
              "type": [
                   "object",
                   "null"
              ],
              "properties": {
                  "name": {
                     "type: "string"
                  }
              },
              "required": [
                  "name"
              ],
              "additionalProperties": false
          }
     },
     "type": "object",
     "properties": {
         "name": {
            "type": "string"
         },
         "details": {
            "$ref": "mySubClass"
         }
      },
      "required": [
          "name",
          "details"
      ],
      "additionalProperties": false
}

Как я могу сгенерировать такую ​​схему, используя генератор JSchema?

Есть ли классатрибут аннотации уровня данных, который делает это?

...