Проверка Json-схемы для необязательных параметров - PullRequest
0 голосов
/ 14 октября 2019

Полезная нагрузка Json

  {
     "id": "test1",
     "quantity": {
       "amount": 10
     }
  }

Схема Json

{
    "type": "object",
    "$schema": "http://json-schema.org/draft-06/schema#",
    "properties": {
        "id": {
            "type": "string"
        },
        "category": {
            "type": "string"
        },
        "quantity": {
            "type": "object",
            "properties": {
                "amount": {
                    "type": "integer"
                }
            },
            "required": ["amount"]
        }
    },
    "required": [
        "id",
        "quantity"
    ]
}

Использование библиотеки проверки org.everit.json.schema.

SchemaLoader schemaLoader = SchemaLoader.builder().schemaJson(jsonSchema).build();
Schema schema = schemaLoader.load(jsonSchema, SchemaClient.classPathAwareClient());
schema.validate(jsonSubject);

проверки работают нормальнодля обязательных полей. Но необходимо также проверить необязательные поля. Есть ли способ показать предупреждение, когда поля, не помеченные как «обязательные», отсутствуют в полезной нагрузке JSON. Например, в вышеприведенном случае необходимо, чтобы в полезной нагрузке JSON отсутствовала «категория».

...