Data Transformation Utilities Using JSON Schemas

Brief Description
JSON Schema is designed for validation, but the information in a schema can be used to for a number of other purposes. One of those purposes is data transformation. This project aims to implement some of the transformation uses cases JSON Schema Community has been asking about the last months.

Expected Outcomes

Provide an implementation of the following utilities in any language. They should work with at least the latest version of JSON Schema. Tests should be described in JSON so others who want to write a similar tool in a different language can easily use your tests to ensure compatibility.

  • Provide a utility that takes a JSON Schema and a JSON document and adds to the document any values that are missing but have a default specified for that value in the JSON Schema.
  • Provide a utility that takes a JSON Schema and a JSON document and removes properties in the JSON document that are not described in the JSON Schema.
  • Provide a utility that takes a JSON Schema and a query string from a form post (application/x-www-form-urlencoded) and convert the string to JSON using the JSON Schema to know the types for the values.
    • For example, the string ?foo=1 with schema { "properties": { "foo": { "type": "number" } } } should return { "foo": 1 } rather than { "foo": "1" }.

Skills Required

  • A basic understanding of JSON Schema

Mentors
@jdesrosiers

Project Repo: tbd

Expected Difficulty
Easy

Expected Time Commitment
175

1 Like

Hello Postman Community
I hope you all are doing well. My name is Md Affan, and I’m a student of B.tech Mechanical at Jamia Millia Islamia.

I’m reaching out to express my interest in contributing to Postman’s GSOC 2023.
I liked Data Transformation Utilities Using JSON Schemas idea. I have experience working with Python and C++, and I’m familiar with JSON Schema, and I’m excited about the potential of this project to transform the way that developers work with API data.
I’m also open to working on other areas of the project where there is a need.

I have already studied the project documentation and guidelines and I have set up the development environment on my local machine. I would greatly appreciate any guidance or assistance that you can provide in getting started with contributing to the project.

I actually hve some questions regarding this idea and also abput application process of GSOC2023

  1. How does the project handle JSON Schema files with complex dependencies or circular references?

  2. Are there any performance considerations to keep in mind when working with large JSON documents or schemas?

  3. Are there any planned or potential future features or enhancements for the project, such as support for additional schema formats or transformation operations?

  4. Is it okay if I learn while coding phase as I am not familiar with some tech stacks used in this organization,if yes plzz suggest me some topics that I should learn.

  5. What are initial qualifying tasks ,and when we will get that to solve?

Hello Md Affan,

I am Ankit Kumar, 3rd year CS student at NIT Bhopal. Even I am working on this project and this project is looking interesting to me. For handling circular references, I think we should have to keep track of objects that we have already visited inorder to avoid infinite recursions.

I would also appreciate if @jdesrosiers could guide us through the answers to your 2nd and 3rd questions, as I am curious about them as well.

Thank you.

1 Like

Hello Ankit Kumar,

It’s great to hear that you also find the project interesting and have a suggestion for handling circular references. Keeping track of visited objects is indeed a common approach to prevent infinite recursion and is used in many programming languages.

I’ll make sure to follow up with @gbadebo-bello and provide the answers as soon as possible.

Thank you for your contribution to the discussion.