JSON SCHEMA

Similar to XSD for XML, can describe json data & schema validations.

Go to Schema Specification -> JSON Schema Validation

let $jsonSchema = {
type: "object",
required: ["tenderId", "tenderNotificationNumber", "submissionDate"],
properties: {
tenderId: {
type: "int", //double
minimum: 100,
maximum: 99999,
description: "must be an integer in [ 100, 99999 ] and is required"
},
tenderNotificationNumber: {
type: "string",
minLength: 3,
maxLength: 500
description: "must be a string and is required"
},
submissionDate: {
type: "string",
format: "date-time", //date, time, email
description: "must be an date and is required"
},
tenderStatus: {
enum: [1, 2, 3, 10],
description: "can only be one of the enum values"
},
EMDDetails: {
type: "object",
required: ["Amount"],
properties: {
Amount: {
type: "int",
"description": "must be a integer and is required"
},
FeeType: {
type: "string",
description: "must be a string"
}
}
},
AliasNames: {
type: "array",
items: {
type: "string"
},
minItems: 2,
maxItems: 3,
uniqueItems: true
},
tenderDocuments: {
type: "array",
items: {
type: "object",
properties: {
fileName: {
type: "string"
},
fileExtension: {
type: "string"
}
}
}
}
}
}
}

In MongoDB

  • In validator object -> $jsonSchema is also supported (just type = bsonType)
  • But description error not supported yet
  • Native IsoDate must be stored,
  • currently till draft 4 only
  • Date validations needed to be handled separately not from JSON schema yet

Useful links