JSON Schema Editor
Douglas Crockford originally specified the JSON format in the early 2000s. Here is a 2019 video of Doug Crockford retracing the History of JSON.
When using JSON documents, whether for document databases or data exchanges, it is useful to ensure the integrity and validity of the JSON document being exchanged or stored. In a similar way to how XSD provides a schema definition for XML, the JSON Schema standard provides a clear human- and machine-readable documentation of of JSON documents that allow their annotation and validation.
Graphical JSON Schema editor
Hackolade provides graphical JSON Schema editing of the latest versions including draft-04, draft-06, draft-07, 2019-09, 2020-12. It lets you generate JSON Schema without needing to know JSON Schema syntax, and makes it easy to understand and edit your schema.
Hackolade provides the unique ability to integrate the structure for multiple documents into an Entity-Relationship Diagram, optionally allowing the creation of implicit Foreign Key Relationships for documentation purposes, while rendering each document as a single atomic unit, even when deeply nested sub-objects and arrays are present.
Hackolade allows an undefined data type called "any". This allows you to have no restriction on the data type. While the declaration of the "any" data type is explicit in the UI, the result in JSON Schema is the absence of a data type declaration. In other words, the selection of the "any" data type:
results in the following JSON Schema declaration:
Convert DDLs and XSD into JSON Schema
Hackolade works great to convert structures from XSD (XML Schema) except for import and include, from DDL (Data Definition Language) for SQL relational databases (RDBMS) as well as all the targets Hackolade supports, whether for data-at-rest or data-in-motion. Hackolade shines at inferring the JSON Schema for any JSON document, and can also generate a sample JSON document for any JSON Schema. Hackolade on-boards a JSON Schema validator, and also allows for user-defined custom properties as well as extensions to allow the specific data types of the different database and protocol targets supported by the tool. A command-line interface makes it easy to automate these functions and integrate them into a CI/CD pipeline.
Hackolade handles the polymorphic nature of JSON documents with the support of multiple data types and allOf, anyOf, oneOf choices for schema combination.
Hackolade also supports conditional application of subschemas whereby the if, then and else keywords allow the application of a subschema based on the outcome of another schema:
Hackolade supports the reuse of objects structures through references to internal and external definitions. It is easy to add user-defined custom properties to the application.
Hackolade provides a powerful and unique side-by-side comparison of models handling the synchronized scrolling of hierarchical structures for easy merging of additions, deletions, modifications and moves.
You may also generate documentation in HTML, Markdown or PDF.