Documentation

No results
    gitHub

    JSON Schema Editor

    Wikipedia definition: JSON (JavaScript Object Notation, pronounced /ˈdʒeɪsən/; also /ˈdʒeɪˌsɒn/) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other serializable values). It is a very common data format, with a diverse range of applications, one example being web applications that communicate with a server.  JSON is a language-independent data format. It was derived from JavaScript, but many modern programming languages include code to generate and parse JSON-format data. JSON filenames use the extension .json.

    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.

     

    JSON Schema workspace

     

    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:

    JSON Schema undefined data type any

    results in the following JSON Schema declaration:

    Image

     

     

    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.

     

    JSON Schema preview

     

    Hackolade handles the polymorphic nature of JSON documents with the support of multiple data types and allOf, anyOf, oneOf choices for schema combination.

    JSON Schema choices

     

    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:

    JSON Schema conditional

     

    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.