JSON Schema is a declarative language for defining structure and constraints for JSON data. It comes with rich tooling that you can use for various cases. Go here to read a bit more.

Strings
Numbers
Objects
Arrays
Conditional Validation
Reusability of Schemas
Misc JSON Schema Rules
JSON Schema Annotation

Benefits

  • Simplifies validation and testing logic
  • Allows for much better data exchange between systems, especially systems that use different languages
  • Improved data documentation

Example of JSON Schema

{  
  "$schema": "https://json-schema.org/draft/2020-12/schema",  
  "$id": "https://example.com/product.schema.json",  
  "title": "Product",  
  "description": "A product from Acme's catalog",  
  "type": "object",  
  "properties": {  
    "productId": {  
      "description": "The unique identifier for a product",  
      "type": "integer"  
    },  
    "productName": {  
      "description": "Name of the product",  
      "type": "string"  
    },  
    "price": {  
      "description": "The price of the product",  
      "type": "number",  
      "exclusiveMinimum": 0  
    },  
    "tags": {  
      "description": "Tags for the product",  
      "type": "array",  
      "items": {  
        "type": "string"  
      },  
      "minItems": 1,  
      "uniqueItems": true  
    },  
    "dimensions": {  
      "type": "object",  
      "properties": {  
        "length": {  
          "type": "number"  
        },  
        "width": {  
          "type": "number"  
        },  
        "height": {  
          "type": "number"  
        }  
      },  
      "required": [ "length", "width", "height" ]  
    },  
    "warehouseLocation": {  
      "description": "Coordinates of the warehouse where the product is located.",  
      "$ref": "https://example.com/geographical-location.schema.json"  
    }  
  },  
  "required": [ "productId", "productName", "price" ]  
}