Sobes.tech
Junior

What is a JSON schema?

sobes.tech AI

Answer from AI

JSON Schema is a standard that describes the structure and constraints of JSON documents. It acts as a contract defining what data is expected in a JSON object, including data types, required fields, and other validation rules.

Examples of usage:

  • Data validation: Checking incoming JSON data against a specified format.
  • API documentation: Describing the structure of requests and responses in an API, which simplifies integration.
  • Form generation: Automatically creating user interfaces for data input based on the schema.
  • Code generation: Creating data models in various programming languages based on the schema.

Main elements of JSON Schema:

  • $schema: Specifies the URI of the used standard.
  • $id: Unique identifier of the schema.
  • title: Brief description of the schema.
  • description: More detailed description of the schema.
  • type: Defines the data type (e.g., object, array, string, number, boolean, null).
  • properties: Defines the properties of the object and their respective schemas.
  • required: List of property names that must be present in the object.
  • items: Defines the schema of array elements.
  • Validation keywords: For example, minLength, maxLength, pattern for strings; minimum, maximum for numbers; enum for restricting value choices.

Example of a simple JSON Schema for a "user" object:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://example.com/user.schema.json",
  "title": "User",
  "description": "Schema for a user object",
  "type": "object",
  "properties": {
    "id": {
      "description": "Unique identifier for the user",
      "type": "integer",
      "minimum": 1
    },
    "name": {
      "description": "Name of the user",
      "type": "string"
    },
    "email": {
      "description": "Email address of the user",
      "type": "string",
      "format": "email" // Uses the predefined email format
    },
    "isActive": {
      "description": "Is the user active?",
      "type": "boolean",
      "default": true
    }
  },
  "required": [ "id", "name", "email" ] // These fields are mandatory
}

There are various tools and libraries for working with JSON Schema in Java, such as:

  • json-schema-validator: A popular library for validating JSON data against a schema.
  • jsonschema2pojo: A tool for generating Java classes from JSON Schema.

Using JSON Schema helps ensure consistency and reliability when working with JSON data in applications.