Classical and Modern JSON Schema: A Tutorial
Mohamed-Amine Baazizi, Dario Colazzo, Giorgio Ghelli, Carlo Sartiani, Stefanie ScherzingerThe last few years have seen the ubiquitous diffusion of JSON as one of the most widely used formats for publishing and interchanging data, as it combines the flexibility of semistructured data models with well-known data structures such as objects and arrays. While various schema languages for describing JSON data have been proposed in the past (e.g., JSound and Joi), JSON Schema established itself as de-facto standard schema language for JSON data.
The main aim of this tutorial is to provide the reader with the basic notions about JSON Schema. This tutorial focuses on four main aspects: (1) we first describe Classical JSON Schema and introduce the features that are shared with the latest versions of the specification; (2) we introduce, then, Modern JSON Schema, explain why it differs from Classical JSON Schema, and discuss its novel evaluation model; (3) we analyze tools that support or exploit JSON Schema, like, for example, validators and data generators; and (4) we highlight open research challenges and opportunities related to JSON Schema.