From 89062fab7a522d108c873bdc746b4eb57a95826f Mon Sep 17 00:00:00 2001 From: Nickyshe Date: Fri, 26 Apr 2024 09:11:59 +0100 Subject: [PATCH 1/5] Restructure what is JSON Schema for clarity --- pages/overview/what-is-jsonschema.md | 236 ++++----------------------- 1 file changed, 34 insertions(+), 202 deletions(-) diff --git a/pages/overview/what-is-jsonschema.md b/pages/overview/what-is-jsonschema.md index 727084de3..50f3ea191 100644 --- a/pages/overview/what-is-jsonschema.md +++ b/pages/overview/what-is-jsonschema.md @@ -2,219 +2,51 @@ section: docs title: What is JSON Schema? --- -JSON Schema is a declarative language that you can use to annotate and validate the structure, constraints, and data types of your JSON documents. It provides a way to standardize and define expectations for your JSON data. +JSON Schema is a declarative language for annotating and validating JSON documents' structure, constraints, and data types. It provides a way to standardize and define expectations for JSON data.

![How JSON Schema works](/img/what-is-json-schema.png) -## How it works - -Using JSON Schema, you can define rules and constraints that JSON data should adhere to. When your JSON documents adhere to these constraints, it becomes easier to exchange structured data between applications because the data follows a consistent pattern. - -Before we get into JSON Schema and how it can help us, let's first understand what exactly is a JSON document. - -* A JSON document represents a piece of data that follows the syntax and structure defined by the JSON format. It is a collection of key-value pairs, arrays, and nested objects. -* JSON documents are used to store and transfer data between systems and applications. - -Taking an example of a JSON document representing a customer order: - -```json -{ - "order_id": "123456", - "customer_name": "John Doe", - "items": [ - { - "product_id": "P001", - "name": "T-shirt", - "quantity": 2, - "price": 19.99 - }, - { - "product_id": "P002", - "name": "Jeans", - "quantity": 1, - "price": 49.99 - } - ], - "total_amount": 89.97, - "status": "pending" -} -``` - -* The above code snippet includes attributes such as the *order ID*, *customer name*, *items ordered* (an array of objects with product details), *shipping address*, *total amount*, and *status* of the order. - -* This JSON document provides a structured representation of an order, making it easy to exchange, store, or process the order information in various applications or systems. - - -### The challenge - -When working with JSON data, it can quickly become complex and difficult to manage, especially when dealing with nested structures. Without a standardized schema, it becomes challenging to validate and enforce constraints on the data. - -For example, if we wanted to validate JSON data using Python: - -```python -# Without JSON Schema -data = { - "product": { - "name": "Widget", - "price": 10.99, - "quantity": 5 - } -} - -# Performing basic validation -if "product" in data and isinstance(data["product"], dict) and "name" in data["product"] and "price" in data["product"]: - print("Valid JSON object.") -else: - print("Invalid JSON object.") -``` - -In the above code snippet, we are performing basic validation to check if the JSON object has the required fields. Since this is a relatively simpler data, this way of checking works for now. - -To show the challenges of performing data validation without using JSON Schema, we can take this example in Python: - -```python -# Without JSON Schema -data = { - "order": { - "order_id": "123456", - "customer_name": "John Doe", - "items": [ - { - "product_id": "P001", - "name": "T-shirt", - "quantity": 2, - "price": 19.99 - }, - { - "product_id": "P002", - "name": "Jeans", - "quantity": 1, - "price": 49.99 - } - ], - "shipping_address": { - "street": "123 Main St", - "city": "New York", - "state": "NY", - "postal_code": "10001" - }, - "total_amount": 89.97, - "status": "pending" - } -} - -# Performing basic validation -if ( - "order" in data - and isinstance(data["order"], dict) - and "order_id" in data["order"] - and "customer_name" in data["order"] - and "items" in data["order"] and isinstance(data["order"]["items"], list) - and "shipping_address" in data["order"] and isinstance(data["order"]["shipping_address"], dict) - and "total_amount" in data["order"] - and "status" in data["order"] -): - print("Valid JSON object.") -else: - print("Invalid JSON object.") -``` - -Now we are dealing with a complex JSON structure that represents an order. The basic validation logic checks whether the required fields exist in the JSON object. However, as the structure becomes more complex, the validation code becomes more complicated and prone to errors. Moreover, this approach lacks support for checking data types, handling nested structures, and enforcing specific constraints. - - -### JSON Schema to the rescue - -JSON Schema provides a solution to this problem. It is a specification language for JSON that allows you to describe the structure, content, and semantics of a JSON instance. With JSON Schema, you can define metadata about an object's properties, specify whether fields are optional or required, and define expected data formats. - -By using JSON Schema, people can better understand the structure and constraints of the JSON data they are using. It enables applications to validate data, ensuring it meets the defined criteria. With JSON Schema, you can make your JSON more readable, enforce data validation, and improve interoperability across different programming languages. - -Using the same example, we can validate the data by making use of the [jsonschema](https://github.com/python-jsonschema/jsonschema) Python library: - -```python -from jsonschema import validate - -# Using JSON Schema -data = { - "product": { - "name": "Widget", - "price": 10.99, - "quantity": 5 - } -} - -schema = { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Product", - "type": "object", - "properties": { - "product": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "price": { - "type": "number", - "minimum": 0 - }, - "quantity": { - "type": "integer", - "minimum": 1 - } - }, - "required": ["name", "price", "quantity"] - } - }, - "required": ["product"] -} - -try: - validate(data, schema) - print("Valid JSON object.") -except Exception as e: - print("Invalid JSON object:", e) - -``` - -In the above code snippet, we defined a JSON Schema that describes the expected structure and constraints of the JSON data. We use the `jsonschema` library to validate the `data` against the `schema`. If the data doesn't conform to the schema, an exception is raised, providing detailed information about the failure. - -By using JSON Schema, we can easily define and enforce constraints, making the validation process more robust and manageable. It improves the readability of the code and reduces the chances of data-related issues. - - -## Why developers use JSON Schema - -With JSON Schema you can: - -* **Describe existing data formats**: JSON Schema allows you to describe the structure, constraints, and data types of your existing JSON data formats. -* **Define rules and constraints**: When your JSON documents adhere to these constraints, it becomes easier to exchange structured data between applications because the data follows a consistent pattern. -* **Clear and readable documentation**: JSON Schema supports the creation of documentation that is easily understandable by both humans and machines. -* **Highly extensible** and can be tailored to fit your needs. - * You can create *custom keywords*, *formats*, and *validation rules* to suit your own requirements. -* **Validate your data**, which helps you: - * **Automate testing**: JSON Schema validation enables automated testing, ensuring that data consistently adheres to the specified rules and constraints. - * **Enhance data quality**: By enforcing validation rules, JSON Schema helps ensure the quality of client-submitted data, preventing inconsistencies, errors, and malicious inputs. -* **Wide range of tools availability**: The JSON Schema community has a wealth of tools and resources available across many programming languages to help you create, validate, and integrate your schemas. - - -## Why organizations adopt JSON Schema - -* **Streamline testing and validation**: Simplify your validation logic to reduce your code’s complexity and save time on development. Define constraints for your data structures to catch and prevent errors, inconsistencies, and invalid data. -* **Exchange data seamlessly**: Establish a common language for data exchange, no matter the scale or complexity of your project. Define precise validation rules for your data structures to create shared understanding and increase interoperability across different systems and platforms. + +## Benefits of JSON Schema +### For Developers +JSON Schema enables developers to: + + +* **Describe existing data formats**: JSON Schema allows you to describe your existing JSON data formats' structure, constraints, and data types. +* **Define rules and constraints**: When your JSON documents adhere to these constraints, It becomes easier to exchange structured data between applications because it follows a consistent pattern. +* **Clear documentation**: JSON Schema supports the creation of documentation that is easily understandable by humans and machines. +* **Highly extensible:** JSON Schema can be tailored to fit your needs. You can also create custom keywords, formats, and validation rules to suit your requirements. +* **Validates Data: JSON Schema validates data** in the following ways: + * **Automated testing**: JSON Schema validation enables automated testing, ensuring data consistently adheres to the specified rules and constraints. + * **Enhance data quality**: JSON Schema helps ensure the quality of client-submitted data by enforcing validation rules and preventing inconsistencies, errors, and malicious inputs. +* **Wide range of tools available**: The JSON Schema community offers a wealth of tools and resources across many programming languages to help you create, validate, and integrate your schemas. + +### For Organizations + +JSON Schema enables organizations to: + + + +* **Streamline testing and validation**: JSON Schema simplifies your validation logic to reduce your code’s complexity and save time on development. It also defines constraints for your data structures to catch and prevent errors, inconsistencies, and invalid data. +* **Exchange data seamlessly**: JSON Schema establishes a common language for data exchange, no matter the complexity of your project. It defines precise validation rules for your data structures to create a shared understanding and increase interoperability across different systems and platforms. * **Document your data**: Create a clear, standardized representation of your data to improve understanding and collaboration among developers, stakeholders, and collaborators. -* **Vibrant tooling ecosystem**: Adopt JSON Schema with an expansive range of community-driven tools, libraries, and frameworks across many programming languages. +* **Vibrant tooling ecosystem**: JSON Schema supports various languages, libraries, and frameworks with community-driven tools. + +## History of JSON Schema + -## JSON Schema History +JSON Schema dates back to the [first JSON Schema proposal](https://web.archive.org/web/20071026185150/http://json.com/json-schema-proposal/) submitted by Kris Zyp to [json.com](http://json.com) on October 2nd, 2007. -JSON Schema has a rich history that dates back to the [first JSON Schema proposal](https://web.archive.org/web/20071026185150/http://json.com/json-schema-proposal/) submitted by **Kris Zyp** to json.com on October 2nd, 2007. +The current version of JSON Schema is [2020-12](https://json-schema.org/draft/2020-12/release-notes), which represents the latest advancements and has expanded capabilities compared with the previous versions, `draft-04`, `draft-06`, and `draft-07`. -The current version of JSON Schema is [2020-12](../draft/2020-12/release-notes), which represents the latest advancements and have expended capabilities as compared with the previous version `draft-04`, `draft-06`, `draft-07`. We encourage everyone to adopt the latest version whenever possible to take advantage of all the advancements and benefits of JSON Schema. +We recommend using the newest version of JSON Schema and taking advantage of its benefits. -For more information regarding JSON Schema history, you can refer to [this article](https://modern-json-schema.com/what-is-modern-json-schema) by **Henry Andrews**. +For more information regarding JSON Schema history, refer to [this article](https://modern-json-schema.com/what-is-modern-json-schema) by Henry Andrews. -## Next steps -To start using JSON Schema, see [Creating your first schema](../learn/getting-started-step-by-step). +## What Next? +Intrigued by JSON Schema's potential? Dive right in! Learning is by doing, and creating your first schema is the perfect starting point. Check out the guide on [Creating your first schema](https://json-schema.org/learn/getting-started-step-by-step) to begin crafting your data validation tool. ### Learn more From 799a508b45fd133d6437284857680ebe6ac9c185 Mon Sep 17 00:00:00 2001 From: Nickyshe Date: Sat, 4 May 2024 18:20:33 +0100 Subject: [PATCH 2/5] Made changes to suggestion --- pages/overview/what-is-jsonschema.md | 39 ++++++++++++++++------------ 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/pages/overview/what-is-jsonschema.md b/pages/overview/what-is-jsonschema.md index 50f3ea191..c5e8a407f 100644 --- a/pages/overview/what-is-jsonschema.md +++ b/pages/overview/what-is-jsonschema.md @@ -7,30 +7,35 @@ JSON Schema is a declarative language for annotating and validating JSON documen ![How JSON Schema works](/img/what-is-json-schema.png) -## Benefits of JSON Schema -### For Developers -JSON Schema enables developers to: +## How does JSON Schema work? +In the world of data exchange, JSON Schema emerges as a powerful tool for defining the structure and rules of your JSON data. It uses keywords to define the properties of your data. These keywords allow you to specify details, including datatypes, required properties that must be present for a valid JSON document, and optional properties that can be included. -* **Describe existing data formats**: JSON Schema allows you to describe your existing JSON data formats' structure, constraints, and data types. -* **Define rules and constraints**: When your JSON documents adhere to these constraints, It becomes easier to exchange structured data between applications because it follows a consistent pattern. -* **Clear documentation**: JSON Schema supports the creation of documentation that is easily understandable by humans and machines. -* **Highly extensible:** JSON Schema can be tailored to fit your needs. You can also create custom keywords, formats, and validation rules to suit your requirements. -* **Validates Data: JSON Schema validates data** in the following ways: - * **Automated testing**: JSON Schema validation enables automated testing, ensuring data consistently adheres to the specified rules and constraints. - * **Enhance data quality**: JSON Schema helps ensure the quality of client-submitted data by enforcing validation rules and preventing inconsistencies, errors, and malicious inputs. -* **Wide range of tools available**: The JSON Schema community offers a wealth of tools and resources across many programming languages to help you create, validate, and integrate your schemas. +Furthermore, you can restrict the length of your data and ensure it adheres to specific formats. JSON Schema empowers you to define minimum and maximum values for numerical data, keeping your numbers within a valid range. -### For Organizations +## Benefits of JSON Schema for Developers -JSON Schema enables organizations to: +JSON Schema empowers developers in the following ways: +* **Structured Data Description**: JSON Schema allows developers to describe the structure, constraints, and data types of existing JSON formats. +* **Rule Definition and Enforcement**: By adhering to JSON schema constraints, it becomes easier to exchange structured data between applications as it maintains a consistent pattern. +* **Produce clear documentation**: JSON Schema supports the creation of machine and human readable documentation. +* **Extensibility:** JSON Schema offers high adaptability to developers' needs. Custom keywords, formats, and validation rules can be created to tailor schemas according to specific requirements.. +* **Data Validation:** JSON Schema ensures data validity through: + * Automated Testing: Validation enables automated testing, ensuring data consistently complies with specified rules and constraints. + * Improved Data Quality: By enforcing validation rules, JSON Schema aids in maintaining the quality of client-submitted data, reducing inconsistencies, errors, and potential security vulnerabilities. +* **Rich Tooling Ecosystem**: The JSON Schema community offers a wealth of tools and resources across various programming languages to help developers create, validate, and integrate schemas. +### Benefits of JSON Schema for Organizations + +JSON Schema empowers organizations by: + +* **Simplifying Testing and Validation:**: JSON Schema reduces code complexity and development time by simplifying validation logic. It defines constraints for data structures, enabling the detection and prevention of errors, inconsistencies, and invalid data. + +* **Facilitating Seamless Data Exchange:**: JSON Schema establishes a common language for data exchange, no matter the complexity of your project. It defines precise validation rules for your data structures to create a shared understanding and increase interoperability across different systems and platforms. +* **Enhancing Data Documentation**: JSON Schema enables the creation of clear and standardized representations of data. This improves understanding and collaboration among developers, stakeholders, and collaborators, enhancing organizational efficiency. +* **Access to a Vibrant Tooling Ecosystem**: JSON Schema is supported by a diverse array of languages, libraries, and frameworks with community-driven tools. This vibrant ecosystem enhances development productivity and provides resources for effective schema implementation and utilization. -* **Streamline testing and validation**: JSON Schema simplifies your validation logic to reduce your code’s complexity and save time on development. It also defines constraints for your data structures to catch and prevent errors, inconsistencies, and invalid data. -* **Exchange data seamlessly**: JSON Schema establishes a common language for data exchange, no matter the complexity of your project. It defines precise validation rules for your data structures to create a shared understanding and increase interoperability across different systems and platforms. -* **Document your data**: Create a clear, standardized representation of your data to improve understanding and collaboration among developers, stakeholders, and collaborators. -* **Vibrant tooling ecosystem**: JSON Schema supports various languages, libraries, and frameworks with community-driven tools. ## History of JSON Schema From f14859b97a9ae51d5017097b92b4bd50a52f50b7 Mon Sep 17 00:00:00 2001 From: Nickyshe Date: Tue, 14 May 2024 14:31:18 +0100 Subject: [PATCH 3/5] Suggested changes corrected on what is JSON schema page added new image(how-json-schema-works) --- pages/overview/what-is-jsonschema.md | 4 ++-- public/img/How-json-schema-works.jpg | Bin 0 -> 27831 bytes 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 public/img/How-json-schema-works.jpg diff --git a/pages/overview/what-is-jsonschema.md b/pages/overview/what-is-jsonschema.md index c5e8a407f..31411dc94 100644 --- a/pages/overview/what-is-jsonschema.md +++ b/pages/overview/what-is-jsonschema.md @@ -4,12 +4,12 @@ title: What is JSON Schema? --- JSON Schema is a declarative language for annotating and validating JSON documents' structure, constraints, and data types. It provides a way to standardize and define expectations for JSON data.

-![How JSON Schema works](/img/what-is-json-schema.png) +![How JSON Schema works](/img/How-json-schema-works.jpg) ## How does JSON Schema work? -In the world of data exchange, JSON Schema emerges as a powerful tool for defining the structure and rules of your JSON data. It uses keywords to define the properties of your data. These keywords allow you to specify details, including datatypes, required properties that must be present for a valid JSON document, and optional properties that can be included. +When it comes to exchanging data, JSON Schema emerges as a powerful standard for defining the structure and rules of your JSON data. It uses keywords to define the properties of your data. These keywords allow you to specify details, including datatypes, required properties that must be present for a valid JSON instance, and optional properties that can be included, enabling a consistent and extensible mechanism to manage JSON data. Furthermore, you can restrict the length of your data and ensure it adheres to specific formats. JSON Schema empowers you to define minimum and maximum values for numerical data, keeping your numbers within a valid range. diff --git a/public/img/How-json-schema-works.jpg b/public/img/How-json-schema-works.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8f9170deeb156597e5f4c6f6fddb556c58261c74 GIT binary patch literal 27831 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 literal 0 HcmV?d00001 From 4b7e1565f117617ef39e3755e50a420374bacb7f Mon Sep 17 00:00:00 2001 From: Nickyshe Date: Wed, 15 May 2024 17:57:26 +0100 Subject: [PATCH 4/5] added modified image modified heading "How JSON Schema works" --- pages/overview/what-is-jsonschema.md | 8 +++++--- public/img/How-json-schema-works.jpg | Bin 27831 -> 0 bytes public/img/json_schema.svg | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) delete mode 100644 public/img/How-json-schema-works.jpg create mode 100644 public/img/json_schema.svg diff --git a/pages/overview/what-is-jsonschema.md b/pages/overview/what-is-jsonschema.md index 31411dc94..66606a629 100644 --- a/pages/overview/what-is-jsonschema.md +++ b/pages/overview/what-is-jsonschema.md @@ -4,14 +4,16 @@ title: What is JSON Schema? --- JSON Schema is a declarative language for annotating and validating JSON documents' structure, constraints, and data types. It provides a way to standardize and define expectations for JSON data.

-![How JSON Schema works](/img/How-json-schema-works.jpg) +![How JSON Schema works](/img/json_schema.svg) ## How does JSON Schema work? -When it comes to exchanging data, JSON Schema emerges as a powerful standard for defining the structure and rules of your JSON data. It uses keywords to define the properties of your data. These keywords allow you to specify details, including datatypes, required properties that must be present for a valid JSON instance, and optional properties that can be included, enabling a consistent and extensible mechanism to manage JSON data. +When it comes to data exchange, JSON Schema stands out as a powerful standard for defining the structure and rules of JSON data. It uses various [keywords](https://json-schema.org/learn/glossary#keyword) to define the properties of your data. -Furthermore, you can restrict the length of your data and ensure it adheres to specific formats. JSON Schema empowers you to define minimum and maximum values for numerical data, keeping your numbers within a valid range. +While JSON Schema provides the language, validating a JSON [instance](https://json-schema.org/learn/glossary#instance) against a [schema](https://json-schema.org/learn/glossary#schema) requires a JSON Schema [validator](https://json-schema.org/implementations#tools). The JSON validator checks if the JSON documents conform to the schema. + +JSON validators are open-source and commercial tools that implement the JSON Schema specification. They make it very easy to integrate JSON Schema into projects of any size. ## Benefits of JSON Schema for Developers diff --git a/public/img/How-json-schema-works.jpg b/public/img/How-json-schema-works.jpg deleted file mode 100644 index 8f9170deeb156597e5f4c6f6fddb556c58261c74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27831 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 diff --git a/public/img/json_schema.svg b/public/img/json_schema.svg new file mode 100644 index 000000000..0c51b6bb4 --- /dev/null +++ b/public/img/json_schema.svg @@ -0,0 +1 @@ + \ No newline at end of file From dcebf7d0ee0afa2e5e38f40f1b465afd13358269 Mon Sep 17 00:00:00 2001 From: Benjamin Granados Date: Wed, 15 May 2024 23:30:07 +0200 Subject: [PATCH 5/5] Small adjustment and image location --- pages/overview/what-is-jsonschema.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pages/overview/what-is-jsonschema.md b/pages/overview/what-is-jsonschema.md index 66606a629..56fc83a9f 100644 --- a/pages/overview/what-is-jsonschema.md +++ b/pages/overview/what-is-jsonschema.md @@ -3,18 +3,19 @@ section: docs title: What is JSON Schema? --- JSON Schema is a declarative language for annotating and validating JSON documents' structure, constraints, and data types. It provides a way to standardize and define expectations for JSON data. -

-![How JSON Schema works](/img/json_schema.svg) +
## How does JSON Schema work? -When it comes to data exchange, JSON Schema stands out as a powerful standard for defining the structure and rules of JSON data. It uses various [keywords](https://json-schema.org/learn/glossary#keyword) to define the properties of your data. +When it comes to data exchange, JSON Schema stands out as a powerful standard for defining the structure and rules of JSON data. It uses a set of [keywords](https://json-schema.org/learn/glossary#keyword) to define the properties of your data. While JSON Schema provides the language, validating a JSON [instance](https://json-schema.org/learn/glossary#instance) against a [schema](https://json-schema.org/learn/glossary#schema) requires a JSON Schema [validator](https://json-schema.org/implementations#tools). The JSON validator checks if the JSON documents conform to the schema. JSON validators are open-source and commercial tools that implement the JSON Schema specification. They make it very easy to integrate JSON Schema into projects of any size. +![How JSON Schema works](/img/json_schema.svg) + ## Benefits of JSON Schema for Developers JSON Schema empowers developers in the following ways: @@ -22,7 +23,7 @@ JSON Schema empowers developers in the following ways: * **Structured Data Description**: JSON Schema allows developers to describe the structure, constraints, and data types of existing JSON formats. * **Rule Definition and Enforcement**: By adhering to JSON schema constraints, it becomes easier to exchange structured data between applications as it maintains a consistent pattern. * **Produce clear documentation**: JSON Schema supports the creation of machine and human readable documentation. -* **Extensibility:** JSON Schema offers high adaptability to developers' needs. Custom keywords, formats, and validation rules can be created to tailor schemas according to specific requirements.. +* **Extensibility:** JSON Schema offers high adaptability to developers' needs. Custom keywords, formats, and validation rules can be created to tailor schemas according to specific requirements. * **Data Validation:** JSON Schema ensures data validity through: * Automated Testing: Validation enables automated testing, ensuring data consistently complies with specified rules and constraints. * Improved Data Quality: By enforcing validation rules, JSON Schema aids in maintaining the quality of client-submitted data, reducing inconsistencies, errors, and potential security vulnerabilities.