D
I suggest you look the other way. https://json-schema.org/ ♪ You can, according to your data, generate the scheme, for example by using one. https://json-schema.org/implementations.html#schema-generators ♪This is an example of your data diagram (used by an online generator) https://app.quicktype.io/#l=schema {
"$schema": "http://json-schema.org/draft-06/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/WelcomeElement"
},
"definitions": {
"WelcomeElement": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"coordinates": {
"$ref": "#/definitions/Coordinates"
},
"creationDate": {
"$ref": "#/definitions/CreationDate"
},
"studentsCount": {
"type": "integer"
},
"expelledStudents": {
"type": "integer"
},
"formOfEducation": {
"type": "string"
},
"semesterEnum": {
"type": "string"
},
"groupAdmin": {
"$ref": "#/definitions/GroupAdmin"
}
},
"required": [
"coordinates",
"creationDate",
"expelledStudents",
"formOfEducation",
"groupAdmin",
"id",
"name",
"semesterEnum",
"studentsCount"
],
"title": "WelcomeElement"
},
"Coordinates": {
"type": "object",
"additionalProperties": false,
"properties": {
"x": {
"type": "integer"
},
"y": {
"type": "integer"
}
},
"required": [
"x",
"y"
],
"title": "Coordinates"
},
"CreationDate": {
"type": "object",
"additionalProperties": false,
"properties": {
"date": {
"$ref": "#/definitions/Date"
},
"time": {
"$ref": "#/definitions/Time"
}
},
"required": [
"date",
"time"
],
"title": "CreationDate"
},
"Date": {
"type": "object",
"additionalProperties": false,
"properties": {
"year": {
"type": "integer"
},
"month": {
"type": "integer"
},
"day": {
"type": "integer"
}
},
"required": [
"day",
"month",
"year"
],
"title": "Date"
},
"Time": {
"type": "object",
"additionalProperties": false,
"properties": {
"hour": {
"type": "integer"
},
"minute": {
"type": "integer"
},
"second": {
"type": "integer"
},
"nano": {
"type": "integer"
}
},
"required": [
"hour",
"minute",
"nano",
"second"
],
"title": "Time"
},
"GroupAdmin": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"passportID": {
"type": "string",
"format": "integer"
},
"eyeColor": {
"type": "string"
},
"hairColor": {
"type": "string"
},
"nationality": {
"type": "string"
}
},
"required": [
"eyeColor",
"hairColor",
"name",
"nationality",
"passportID"
],
"title": "GroupAdmin"
}
}
}
It is further necessary to select and connect one of the realities https://json-schema.org/implementations.html#validator-java the most suitable for your needs.