Awesome
<!-- ATTENTION! This file is auto-generated. Do not edit this file directly. Instead, edit `data.yaml` and re-generate this file as per the README's instructions -->Awesome JSON Schema ![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)
<img src="logo.svg" align="right" width="100">
A curated list of awesome JSON Schema resources, tutorials, tools, and more.
JSON Schema is a JSON-based format to annotate and validate JSON documents with a vibrant community. JSON Schema is defined by a set of IETF specifications and it is the industry-standard for defining the structure and meaning of JSON documents.
Would you like to promote your company or product here? Sponsor us on GitHub
[!TIP] Do you want to level up your JSON Schema skills? Check out learnjsonschema.com, our growing JSON Schema documentation website, and our O'Reilly book Unifying Business, Data, and Code: Designing Data Products with JSON Schema.
Contents
- Official
- Getting Started
- Vocabularies
- Registries
- Adoption
- Articles
- Specifications
- Books
- Courses
- Videos
- Podcasts
- Papers
- Tools
- Libraries
Official
- GitHub - The official GitHub organization of the JSON Schema project.
- GitHub Discussions - The discussions page of JSON Schema.
- Slack - The official Slack workspace of JSON Schema.
- Stack Overflow - The JSON Schema tag in Stack Overflow.
- Test Suite - The official test suite for JSON Schema implementations.
- Twitter - The Twitter account of the JSON Schema project.
- YouTube - The JSON Schema official YouTube channel.
Getting Started
- (2022) YAML Data Validation - A tutorial on validating YAML documents using JSON Schema 2020-12.
- (2022) Validating POST Data Against JSON Schema - A tutorial on validating HTTP request data using JSON Schema using the Architect Functional Web Apps (FWAs) framework.
- (2022) React JSON Schema Form - A tutorial on using the React JSON Schema Form project by Mozilla to generate web forms using JSON Schema.
- (2022) JSON Schema validation for columns - A short tutorial on adding MySQL and PostgreSQL table constraints using JSON Schema.
- (2022) Easy and Quick Form Generation Using JSON Schema in VueJS - A tutorial on generating web forms using JSON Schema and VueJS.
- (2022) Creating a JSON schema - A tutorial on creating JSON Schema 2020-12 definitions for a fictitious interviewing platform.
- (2021) Understanding JSON Schema - An in-depth guide to JSON Schema.
- (2021) JSON Schema: Getting Started Step-By-Step - A comprehensive introduction to JSON Schema.
- (2021) Introduction to JSON Schema in Java - A short introduction to validating JSON documents with JSON Schema in Java.
- (2020) Validating and documenting JSON with JSON Schema - An introduction to JSON Schema by example by showing an annotated JSON Schema that validates an example document.
- (2020) JSON Schema Tutorial - A tutorial of JSON Schema that discusses validation, documentation and hyperlinking.
- (2020) How to Integrate "React JSON Schema Form" into a Redux and Typescript Project - Adding a form using "React JSON Schema Form" and integrating it with Redux and Typescript.
- (2020) An introduction to JSON Schema - An introduction to JSON Schema covering its history, common keywords and how to use the AJV validator.
- (2019) REST API Tutorial: JSON Schema - An short introduction to JSON Schema validation.
- (2019) PHP With MySQL - A practical tutorial on expressing JSON Schema table constraints on MySQL.
- (2017) Getting started with JSON Hyper-Schema - An introduction to the Hyper-Schema JSON Schema vocabulary.
- (2013) TutorialsPoint: JSON Schema - A short introduction to JSON Schema Draft4 validation.
Vocabularies
- Accessing Data Stored in JSON - A vocabulary defining keywords that can be used to reference values stored in the instance data, the schema data and external JSON data where the dereferenced values serve as input for keywords in a derived subschema.
- Hyper-Schema 2019-09 - Keywords to annotate JSON documents with hyperlinks. These hyperlinks include attributes describing how to manipulate and interact with remote resources through hypermedia environments such as HTTP, as well as determining whether the link is usable based on the instance value.
- JSON Schema 2020-12 Applicator - Applicator keywords that are recommended for use as the basis of other vocabularies.
- JSON Schema 2020-12 Content - Annotations keywords that indicate that an instance contains non-JSON data encoded in a JSON string.
- JSON Schema 2020-12 Core - Keywords that are either required in order to process any schema or meta-schema, including those split across multiple documents, or exist to reserve keywords for purposes that require guaranteed interoperability.
- JSON Schema 2020-12 Format Annotation - An annotation keyword defined to allow schema authors to convey semantic information for a fixed subset of values which are accurately described by authoritative resources.
- JSON Schema 2020-12 Format Assertion - An assertion keyword defined to allow schema authors to convey semantic information for a fixed subset of values which are accurately described by authoritative resources.
- JSON Schema 2020-12 Meta-Data - These general-purpose annotation keywords provide commonly used information for documentation and user interface display purposes.
- JSON Schema 2020-12 Unevaluated - Keywords that enable schema authors to apply subschemas to array items or object properties that have not been successfully evaluated against any dynamic-scope subschema of any adjacent keywords.
- JSON Schema 2020-12 Validation - Validation keywords in a schema impose requirements for successful validation of an instance. These keywords are all assertions without any annotation behavior.
- Uniqueness of Array Items - A vocabulary defining keywords that can be used to validate that arrary instances contain unique values as determined by one or more given paths within each item.
Registries
- AsyncAPI Schemas - This repository contains all the JSON Schema documents for validating AsyncAPI documents.
- Conda Schemas - Conda file formats and schemas.
- Intelligence.AI Schemas - A schema registry by Intelligence.AI.
- KrakenD Schemas - This repository contains the source code used to publish KrakenD's configuration schemas.
- OCSF Schemas - This repository defines the Open Cybersecurity Schema Framework (OCSF) schema. OCSF is a framework for creating schemas and it also delivers a cybersecurity event schema built with the framework.
- SchemaStore - The largest collection of independent JSON schemas in the world meant as a universal JSON schema store, where schemas for popular JSON documents can be found.
Adoption
Awesome products and companies that adopted JSON Schema. Did we miss any? Let us know!
- Adobe Experience Manager - The Adobe Experience Manager content management solution for building websites, mobile apps and forms supports creating adaptative forms using JSON Schema.
- Amazon EventBridge Schema Registry - Amazon EventBridge Schema Registry has support for JSON Schema, allowing customers to validate, annotate, and manipulate JSON documents conforming to JSON Schema Draft 4 specification.
- Apiary - Apiary's interactive documentation is able to render JSON Schema documents associated with payloads.
- Assertible - Assertible provides a free-to-use API to validate a JSON document against a JSON Schema and a service to test and monitor web services using JSON Schema.
- Axway API Gateway - The API Gateway can check that JavaScript Object Notation (JSON) messages conform to the format expected by a web service by validating requests against a specified JSON schema.
- Cloudflare - The Cloudflare makes use of JSON Schema and Hyper Schema to keep track of their API endpoints.
- Cloudflare Terraform - The Cloudflare Terraform provider comes with a tool to generate Terraform configuration from existing Cloudflare resources that uses JSON Schema to map data between both technologies.
- Confluent Schema Registry - JSON Schema can be configured with the Apache Kafka Java client and console tools to fail if the payload is not valid for the given schema.
- Contentstack - The Contentstack CMS platform supports creating content types using JSON Schema.
- Decisions - The Decisions rules-driven business process automation platform support using JSON Schema to generate JSON deserializers.
- DocSpring - The DocSpring service to automatically fill out PDF forms supports generating JSON Schema definitions for user-created templates.
- Drupal Patternkit - The Drupal Patternkit module uses JSON Schema to define pattern templates.
- Form.io - The Form.io online web form generator supports generating Angular.js forms using JSON Schema.
- Genomic Data Commons - The Genomic Data Commons data model is defined using JSON Schema.
- Hackolade - The Hackolade data modelling service supports defining entities using JSON Schema.
- Heroku - Heroku makes use of JSON Schema to publish machine-readable schema definitions for their public APIs.
- Human Cell Atlas - The open data generated by the Human Cell Atlas describes metadata structure using JSON Schema.
- IBM App Connect - The Graphical Data Mapping editor can be used to create and transform JSON messages with the data model defined from a JSON schema.
- Informatica - The Informatica data management platform supports creating auto-generated data processor transformations using JSON Schema.
- JSON BinPack - JSON BinPack uses JSON Schema to perform space-efficient JSON binary serialization.
- JSON:API - The JSON:API 1.0 and later specifications for building APIs in JSON use JSON Schema to define JSON:API responses.
- JamF - The JamF Apple enterprise management service supports creating app manifests using JSON Schema.
- JetBrains - The suite of JetBrains programming editors supports JSON code-completion based on JSON Schema.
- KrakenD - KrakenD endpoints receiving a JSON object in its body can apply automatic validations using the JSON Schema vocabulary before the content passes to the backends.
- Lightblue.io - The Lightblue document based data access layer framework uses JSON Schema to define certain file resources in the project.
- Linux - The Linux kernel uses JSON Schema to define Devicetree bindings.
- Manfred - Manfred uses JSON Schema to define their APIs and their open CV format.
- Microsoft - A collection of JSON Schema definitions used by products and services at Microsoft.
- MongoDB - MongoDB 3.6 and later support JSON Schema for querying data and defining collection constraints.
- Mozilla Data Pipeline - Mozilla Data Pipeline uses JSON Schema to define telemetry data ingested from Mozilla products and logs from various services.
- MuleSoft - The MuleSoft integration framework supports validating a JSON document against a JSON Schema.
- MySQL - MySQL 8.0.17 and later support table constraints to validate a JSON document against a JSON Schema.
- Nakadi - The Nakadi open-source distributed event bus supports defining event types with JSON Schema.
- National Cancer Institute - The National Cancer Institute uses JSON Schema to model entities for their Genomic Data Commons collection.
- NinJS - NinJS standardises the representation of news content in JSON and maintains a JSON Schema document to help validate NinJS implementations.
- Open Policy Agent (OPA) - The OPA policy-based control platform 0.27.0 and newer support statically type-checking Rego policy code using JSON Schema.
- Ory Kratos - The Ory Kratos identity & user management product relies on JSON Schema from configuration validation, documentation generation for defining identity schemas.
- Postman - The Postman API platform supports running JSON Schema validation in API tests.
- RDA DMP Common Standard for machine-actionable Data Management Plans - The RDA DMP Common Standards Working Group maintains JSON Schemas to validate maDMP JSON documents.
- RESTHeart - RESTHeart supports MongoDB schema validation to enforce a format to documents: rules-based validation from MongoDB 3.2 and Json Schema validation from MongoDB 3.6.
- Remote - Remote uses JSON Schema to perform form generation and data validation in their frontend and backend systems.
- Retool - The Retool no-code platform supports generating web forms using JSON Schema.
- Serverless - The Serverless framework validates service configuration files using JSON Schema.
- Smart Data Models - The Smart Data Models GitHub organization makes use of JSON Schema to describe harmonized Data Models for different Smart Domains.
- Snowplow - The Snowplow analytics platform support using JSON Schema to define the structure of the data to collect.
- SpreadJS - The SpreadJS JavaScript spreadsheet library uses JSON Schema to describe the SpreadJS JSON data format.
- TILT (machine-readable privacy policies) - TILT is a transparency information language and toolkit powered by JSON Schema explicitly designed to represent and process transparency information in line with the requirements of the EU General Data Protection Regulation and allowing for a more automated and adaptive use of such information than established, legalese data protection policies do.
- U.S. Department of Commerce - The National Institute of Standards and Technology uses JSON Schema Draft 7 to model Open Security Controls Assessment Language (OSCAL) JSON documents.
- Walmart eCommerce - Walmart publishes JSON Schema documents for certain resources that developers can make use of when integratting with the Walmart eCommerce platform.
- Wordpress - Wordpress maintains official JSON Schema documents to help with building block based themes.
- Zapier - Zapier maintains a large set of JSON Schema definitions that define its platform.
- Zuplo - The Zuplo API gateway provides JSON Schema validation and supports generating API documentation out of OpenAPI specifications.
- nf-core - The nf-core Nextflow analysis pipelines collection uses JSON Schema to define the parameters used by Nextflow workflows.
Articles
- (2023) LLMs for Schema Augmentation - Large language models can be exploited to automatically augment JSON Schemas with useful information.
- (2022) What is "Modern" JSON Schema? - How "modern" JSON Schema, meaning 2019-09, 2020-12, and later, can solve far more problems than "classical" JSON Schema (draft-07 and earlier).
- (2022) Using Dynamic References to Support Generic Types - Representing generic types from strongly-typed programming languages with JSON Schema.
- (2022) JSON Schema is a constraint system - Or: Why object-oriented programming is a mis-matched mental model for JSON Schema.
- (2022) Forming new relationships: Contributing to Open source - A description of adopting and extending JSON Forms, a JSON Schema based form rendering library, to support VueJS and Vuetify..
- (2022) Docs! Docs! Docs! - An overview of API documentation generation using Hyper Schema and OpenAPI.
- (2021) Understanding JSON Schema compatibility - A study of open, closed, and partially-open content models when evolving schemas in a backward, forward, or fully compatible manners.
- (2021) Understanding API Complexity Through Schema Entropy - A look at API complexity by analyzing entropy of JSON Schema documents.
- (2021) Robustness, Tolerance, and JSON Schema - Applying the Robustness Principle and increasing schema entropy when making changes to an API.
- (2021) Modeling a file system with JSON Schema - This example shows a possible JSON Schema representation of file system mount points as represented in an /etc/fstab file.
- (2021) JSON Schema bundling finally formalised - A close look at bundling and de-referencing JSON Schema documents.
- (2020) Using the JSON Schema standard for scientific applications? - A discussion on how to use JSON Schema to validate input, add precise documentation, auto-fill missing parts, and create graphical user interfaces in the context of scientific applications.
- (2020) Project Cambria: Translate your data with lenses - A proposal for an isolated software layer that translates data between JSON Schema definitions on demand. Translation logic is defined by composing bidirectional lenses, a kind of data transformation that can run both forward and backward.
- (2020) JSON Schema, Schema.org, JSON-LD: What's the Difference? - An overview of the difference between JSON Schema and JSON-LD, their relationship and the role of Schema.org.
- (2020) Building a No-Code JSON Schema Form Builder with ReactJS - An update on the additional features implemented in the react-json-schema-form-builder open-source JSON Schema form builder project.
- (2020) Azure Pipelines autocomplete in PyCharm, IntelliJ, WebStorm, CLion, and Rider - Setting up PyCharm, IntelliJ, WebStorm, CLion and Rider to have auto-complete, syntax highlighting and validation support of Azure Pipelines workflows.
- (2019) Saved by the Schema: Using JSON Schema to Document, Test, and Debug APIs - Learn how Heroku uses JSON Schema to test and document their Platform API, and how it helped them uncover an unexpected bug, rooted in the way the Oj gem parses Big Decimals.
- (2018) JSON Schema Validator, Generator & Editor Guide - How the JSON and JSON Schema standards are defined and how to put them to use in your code and in your APIs.
- (2018) JSON Schema Validation & Expressive Query Syntax in MongoDB 3.6 - An in-depth discussion about using JSON Schema to define collection validation on MongoDB.
- (2018) Definitions for filtering properties in JSON schema - An introduction to the problem of using JSON Schema for data filtering and querying purposes.
- (2014) Introducing SchemaVer for semantic versioning of schemas - A proposal for a versioning convention for JSON Schema definitions based on SemVer.
Specifications
- (2021) AsyncAPI - AsyncAPI is an open source initiative that seeks to improve the current state of Event-Driven Architectures (EDA). The AsyncAPI specification supports data modeling using JSON Schema.
- (2021) JSON Schema in RDF - This document introduces an RDF vocabulary for JSON schema definitions. This vocabulary provides a stable namespace IRI for JSON schema keywords, as well as simple axioms, defined against schema.org's meta-model. Various examples on how to use the vocabulary are also introduced, e.g. to annotate schemas with JSON-LD metadata or to embed schema annotations inside RDF graphs.
- (2021) OpenAPI - The OpenAPI specification embeds and extends JSON Schema for defining API request and responses.
- (2021) RAML - The RAML specification supports modeling API data using JSON Schema.
- (2020) JSON Schema Core 2020-12 - JSON Schema defines the media type "application/schema+json", a JSON-based format for describing the structure of JSON data. JSON Schema asserts what a JSON document must look like, ways to extract information from it, and how to interact with it. The "application/schema-instance+json" media type provides additional feature-rich integration with "application/schema+json" beyond what can be offered for "application/json" documents.
- (2020) JSON Schema Validation 2020-12 - JSON Schema (application/schema+json) has several purposes, one of which is JSON instance validation. This document specifies a vocabulary for JSON Schema to describe the meaning of JSON documents, provide hints for user interfaces working with JSON data, and to make assertions about what a valid document must look like.
- (2020) Relative JSON Pointers - JSON Pointer is a syntax for specifying locations in a JSON document, starting from the document root. This document defines an extension to the JSON Pointer syntax, allowing relative locations from within the document.
- (2020) W3C Web of Things - The Web of Things (WoT) seeks to counter the fragmentation of the IoT by using and extending existing, standardized Web technologies. WoT models data using JSON Schema.
- (2019) JSON Hyper-Schema - JSON Schema is a JSON-based format for describing JSON data using various vocabularies. This document specifies a vocabulary for annotating JSON documents with hyperlinks. These hyperlinks include attributes describing how to manipulate and interact with remote resources through hypermedia environments such as HTTP, as well as determining whether the link is usable based on the instance value.
Books
- (2024) Unifying Business, Data, and Code: Designing Data Products with JSON Schema - Covers topics such as writing your own JSON Schema vocabularies, understanding JSON Schema annotations, and hosting your own JSON Schema registries. More importantly, our book teaches you a methodology for effective data management.
- (2021) API by Design - Introduces an approach to measure API complexity by analyzing entropy in JSON Schema definitions.
- (2017) JSON at Work - A comprehensive overview of the JSON ecosystem, including JSON Schema.
- (2014) Using JSON Schema - Learn and Apply JSON Schema by Example, with JavaScript (Node.js) and Python Programs.
Courses
- (2017) JSON Schema - Crash Course for Beginners - Learn JSON & JSON Schema in a Quick 30-40 minutes & use it for the rest of your life for complex projects.
- (2017) Processing and Interchanging JSON Data - An in-depth guide to working with JSON and the JSON ecosystem including using JSON Schema for validation purposes.
Videos
- (2022) JSON Schema in Production: #3 Mads Kristensen at Microsoft - Mads shares the story of bringing JSON Schema support into Visual Studio back in version 2013, the first editor supporting JSON Schema. What's called .Net Core today needed tooling for their "project.json" file, similar to a "package.json" file. JSON Schema ended up playing a key role in the autocompletion and validation infastructure ontop of a basic JSON editor.
- (2022) JSON Schema in Production - #6 Suresh Srinivas at OpenMetadata - We talk to Suresh Srinivas, Co-Founder at Collate, building OpenMetadata. (Previously engineering leadership at Uber and Founder of Hortonworks.).
- (2022) JSON Schema in Production - #5 Jens Neuse at Wundergraph - Jens Neuse, Founder of Wundergraph shares how Wundergraph compiles GraphQL definitions into JSON RPC and create JSON Schema definitions for each JSON RPC endpoint. Input data is validated using JSON Schema at the middleware-level before executing the corresponding GraphQL query.
- (2022) JSON Schema in Production - #4 David Brownman at Zapier - David shares the story of using JSON Schema at Zapier to validate and document their intergration payloads, enabling a better developer experience for their 4000+ intergration partners..
- (2022) JSON Schema in Production - #2 Kin Lane at F5 - Kin shares the challenges of building a company wide index of data structures (or Schema Registry), aiming to help understand previous, and avoid future, unexpected breaking changes that really impact customers.
- (2022) JSON Schema in Production - #1 Chuck Reeves at Zones - Ben talks to Chuck Reeves, previously at Zones, about how they used JSON Schema to validate data and keep it in a consistent format across their application. Chuck shares how using a public API gateway to validate incoming data saved developers time and compute effort, making sure only valid data was passed downstream to serverless functions or other services.
- (2022) JSON Schema In Production - You Can Use It Today - Ben Hutton, Postman - Hear the about the journey of organizations that use JSON Schema in production today, and learn about how JSON Schema continues to deliver value.
- (2021) So you think you understand JSON Schema? - Ben Hutton - In this session you'll learn some key fundamentals, intracacies that even catch out the experienced, and how to develop your own interoperable JSON Schema Vocabulary.
- (2021) Maintaining JSON Schemas at Scale - Jason Desrosiers - In this talk, we will cover the keywords, concepts, and patterns for maintaining large schemas or large collections of schemas. We'll tackle problems like how to breakdown and organize schemas, how to bundle schemas, how to make large schemas efficient, how to get better error messages from large schemas, and more.
- (2021) JSON Schema Validation in Postman - An tutorial of performing JSON Schema validation in Postman in API tests.
- (2021) Configuring Umbraco on .NET Core - JSON Schema - Configuring Umbraco on .NET Core with JSON Schema-powered autocompletions for appsettings.json using SchemaStore.
- (2021) API Storytelling with Ben Hutton - This episode we sit down with Ben Hutton, the lead behind the JSON Schema community to talk about vocabularies and other ways we validate and annotate how we tell stories we tell in the API space.
- (2020) What is JSON Schema - A basic introduction to JSON Schema showing how to auto-generate JSON Schema document from an existing JSON document.
- (2019) What is a JSON Schema? Generate, Modify, and Understand a JSON Schema: Example - An in-depth introduction to JSON Schema including auto-generating JSON Schema documents using QuickType.io.
- (2019) JSON Schema Validation: How to Validate JSON Schema with Postman? - An introduction to JSON Schema and how to use it in Postman.
- (2017) JSON Schema - the Good, the Bad and the Ugly - With JSON Schema you are required to define your data and the available tooling to do so is not really great (yet). This presentation provides you with criteria to judge whether JSON Schema could be beneficial for your project or is just too much overhead.
Podcasts
- (2021) API Lifecycles, Specifications, and Standards with Kin Lane - Thomas Betts talks with Kin Lane about managing your API lifecycle using standards and specifications, including OpenAPI, AsyncAPI, and JSON Schema. These specifications and the tooling based on them can help reduce communication problems, by creating documentation, generating code, and automating testing.
Papers
- (2023) JSONoid: Monoid-based Enrichment for Configurable and Scalable Data-Driven Schema Discovery - Meaningful schema information for semi-structured data.
- (2023) JSONoid: Distributed JSON Schema Discovery - A tool for distributed JSON schema discovery including many properties of the data.
- (2023) Comprehending Semantic Types in JSON Data with Graph Neural Networks - Graph neural networks for semantic type detection in JSON.
- (2023) An Analysis of Defects in Public JSON Schemas - Analysis of common defects found in publicly available schemas leading to recommend changes to the spec.
- (2022) Witness Generation for JSON Schema - JSON Schema is an important, evolving standard schema language for families of JSON documents. It is based on a complex combination of structural and Boolean assertions, and features negation and recursion. The static analysis of JSON Schema documents comprises practically relevant problems, including schema satisfiability, inclusion, and equivalence. These three problems can be reduced to witness generation: given a schema, generate an element of the schema, if it exists, and report failure otherwise.
- (2022) Validating Streaming JSON Documents with Learned VPAs - This paper presents a new streaming algorithm to validate JSON documents against a set of constraints given as a JSON schema. It proves that there always exists a visibly pushdown automaton (VPA) that accepts the same set of JSON documents as a JSON schema.
- (2022) The Usage of Negation in Real-World JSON Schema Documents - Many software tools, but also formal frameworks for working with JSON Schema, do not fully support negation. This motivates us to study whether negation is actually used in practice, for which aims, and whether it could, in principle, be replaced by simpler operators. We have collected a large corpus of 80k open source JSON Schema documents. We perform a systematic analysis, quantify usage patterns of negation, and also qualitatively analyze schemas. We show that negation is indeed used, albeit infrequently, following a stable set of patterns.
- (2022) JSON BinPack: A space-efficient schema-driven and schema-less binary serialization specification based on JSON Schema - A survey and benchmark of JSON-compatible binary serialization specifications followed by the introduction of JSON BinPack, a novel protocol-independent schema-driven and schema-less binary serialization specification that is strictly-compatible with JSON and takes advantage of JSON Schema formal definitions to produce bit-strings that are space-efficient in comparison to every considered alternative serialization specification.
- (2022) Implicit JSON Schema Versioning Triggered by Temporal Updates to JSON-Based Big Data in the τJSchema Framework - This paper proposes an approach for handling implicit schema changes triggered by temporal updates of JSON-based Big Data. More precisely, when a user specifies a temporal JSON update operation that modifies a snapshot JSON component assigning a valid-time timestamp to its new value, the execution of such an operation requires the JSON component to become temporal, which is for all intents a schema change. Thus, a new version of the τJSchema temporal characteristics document is generated, with the addition of a new valid-time characteristic. New versions of the temporal JSON schema and of the temporal JSON document are also accordingly created.
- (2021) TILT: A GDPR-Aligned Transparency Information Language and Toolkit for Practical Privacy Engineering - We present TILT, a transparency information language and toolkit explicitly designed to represent and process transparency information in line with the requirements of the GDPR and allowing for a more automated and adaptive use of such information than established, legalese data protection policies do.
- (2021) Not Elimination and Witness Generation for JSON Schema - In this paper, we present an algebraic characterization of JSON Schema, obtained by adding opportune operators, and by mirroring existing ones. We present then algebra-based approaches for dealing with not-elimination and witness generation problems, which play a central role as they lead to solutions for the other mentioned complex problems.
- (2021) Fast Discovery of Nested Dependencies on JSON Data - Efficient dependency mining algorithms for non-relational data.
- (2021) Enhancing JSON Schema Discovery by Uncovering Hidden Data - Enhancing discovered JSON Schemas by disambiguating data and metadata.
- (2021) Deriving Semantics-Aware Fuzzers from Web API Schemas - Discusses JSON Schema canonicalization and JSON Schema instance derivation in the context of property-based testing of APIs.
- (2020) Type Safety with JSON Subschema - Deciding whether one schema is a subschema of another is non-trivial because of the richness of the JSON Schema specification language. Given a pair of schemas, our approach first canonicalizes and simplifies both schemas, then decides the subschema question on the canonical forms, dispatching simpler subschema queries to type-specific checkers.
- (2020) JSON Schema Inference Approaches - In the context of document NoSQL databases, namely those assuming the JSON data format, this paper focuses on several representatives of the existing inference approaches and provide their thorough comparison.
- (2020) Challenges in Checking JSON Schema Containment over Evolving Real-World Schemas - This paper presents the results of an empirical study of the first generation of tools for checking JSON Schema containment which is applied to a diverse collection of over 230 real-world schemas and their altogether 1k historic versions.
- (2019) What Are Real JSON Schemas Like? - A first empirical analysis of a curated collection of real-world JSON Schemas. Knowing what real JSON Schemas are like (to borrow from a title of a related study on DTDs) helps practitioners and researchers in making realistic assumptions when building tools for JSON Schema processing.
- (2018) Top-Down Model-Driven Engineering of Web Services from Extended OpenAPI Models - Shows how OpenAPI can be extended to add implementation details inside models. These extensions link services to assemblies of components that describe computations. Hence a top-down development process that keeps model and implementation aligned.
- (2018) An Approach for Schema Extraction of JSON and Extended JSON Document Collections - This paper presents an approach that extracts a schema from a JSON or Extended JSON document collection stored in a NoSQL document-oriented database or other document repository. Aggregation operations are considered in order to obtain a schema for each distinct structure in the collection, and a hierarchical data structure is proposed to group these schemas in order to generate a global schema in JSON Schema format.
- (2017) Schema Inference for Massive JSON Datasets - Recent years have seen the widespread use of JSON as a data format to represent massive data collections. JSON data collections are usually schemaless. While this ensures several advantages, the absence of schema information has important negative consequences: the correctness of complex queries and programs cannot be statically checked, users cannot rely on schema information to quickly figure out structural properties that could speed up the formulation of correct queries, and many schema-based optimizations are not possible. In this paper we deal with the problem of inferring a schema from massive JSON data sets.
- (2017) Example-Driven Web API Specification Discovery - In this paper we present an example-driven discovery process that generates model-based OpenAPI specifications for REST Web APIs by using API call examples. A tool implementing our approach and a community-driven repository for the discovered APIs are also presented.
- (2017) Definition of REST web services with JSON schema - The aim of this article is to demonstrate how JSON Schema, and particularly the JSON Hyper Schema extension, is suitable to describe JSON-based web services that follow the REST architectural pattern.
- (2016) τJSchema: A Framework for Managing Temporal JSON-Based NoSQL Databases - This paper proposes a framework called Temporal JSON Schema (τJSchema), inspired by the τXSchema framework defined for XML data. τJSchema allows defining a temporal JSON schema from a conventional JSON schema and a set of temporal logical and physical characteristics. Our framework guarantees logical and physical data independence for temporal schemas and provides a low-impact solution since it requires neither modifications of existing JSON documents, nor extensions to the JSON format, the JSON Schema language, and all related tools and languages.
- (2016) Foundations of JSON Schema - In this paper we provide the first formal definition of syntax and semantics for JSON Schema and use it to show that implementing this layer on top of JSON is feasible in practice.
- (2015) Schema extraction and structural outlier detection for JSON-based nosql data stores - Rather than designing the schema up front, extracting a schema in hindsight can be seen as a reverse-engineering step. Based on the extracted schema information, we propose set of similarity measures that capture the degree of heterogeneity of JSON data and which reveal structural outliers in the data.
- (2014) Jsongen: a quickcheck based library for testing JSON web services - This article describes a systematic approach to testing behavioural aspects of Web Services that communicate using the JSON data format. To generate random JSON data for populating tests we have developed a new library, jsongen, which given a characterisation of the JSON data as a JSON schema, (i) automatically derives a QuickCheck generator which can generate an infinite number of JSON values that validate against the schema, and (ii) provides a generic QuickCheck state machine which is capable of following the (hyper)links documented in the JSON schema, to automatically explore the web service.
- (2012) User profile integration made easy: model-driven extraction and transformation of social network schemas - This paper presents, firstly, a semi-automatic approach to extract schema information from instance data. Secondly, transformations of the derived schemas to different technical spaces are utilized, thereby allowing, amongst other benefits, the application of established integration tools and methods. Finally, as a case study, schemas are derived for Facebook, Google+, and LinkedIn.
Tools
- TypedWebhook.tools - An online webhook testing tool that is able to generate JSON Schema definitions out of incoming data.
- QuickType.io - An online JSON Schema code-generation utility with diverse programming language support.
- JSONschema.Net - An online tool that generates JSON schema from JSON documents.
- JSONSchema.dev - An online JSON Schema validator created by the JSON Schema specification lead.
- JSONBuddy - A JSON editor and validator desktop application for Windows.
- JSON Schema Viewer - An online tool to visualize JSON Schema definitions.
- JSON Schema Validator and Generator - An online JSON Schema validator that can generate JSON Schema from JSON documents and generate random JSON documents from JSON Schema.
- JSON Schema Validator - An online JSON Schema validator with support for JSON Schema Draft 3, Draft 4, Draft 6, Draft 7 and Draft 2019-09.
- JSON Schema CLI - The CLI for working with JSON Schema. Covers formatting, linting, testing, bundling, and more for both local development and CI/CD pipelines.
- Hyperjump JSON Schema Validator - An online JSON Schema validator that supports Draft 04, 06, 07, 2019-09, and 2020-12.
- AlterSchema - Convert a JSON Schema definition between specification versions.
Libraries
The JSON Schema website includes an extensive list of implementations and related libraries: https://json-schema.org/implementations.html.
Special thanks to @kinlane for curating the initial version of this list.