DEV Community

Cover image for Need a JSON object comparison that's better than line-by-line
Mark Thomas
Mark Thomas

Posted on

Need a JSON object comparison that's better than line-by-line

Even though JSON objects are structured most free and online tools for comparing JSON ignore the structure and process objects line by line. Those basic comparison tools return poor results with many false positives and most completely fail as they use a line-by-line approach, and none offer a solution to the highly complex problem of JSON Merge. However, one API understands JSON object structure and can offer comparison and merge, DeltaJSON, which has an REST API to build into your apps and an easy to use GUI to visualise your JSON.

The DeltaJSON API analyses the object structure together with the content of the data in keys and arrays. Therefore, the comparison or merge is far more accurate at finding differences as it is comparing data regardless of position in the file, avoiding the issues associated with simple line-by-line comparison. The sophisticated algorithms analyse and process the data allowing DeltaJSON to output an accurate result in seconds even with highly complex data.

The importance of structured comparison and merge is most apparent when handling arrays, as data can often move position in an array, which always creates false positives with simple tools. Particularly when subsets of data are held using an array within an array, the output from DeltaJSON is more accurate and cannot replicated with other tools. There are also configuration options for comparing and merging, such as how arrays are processed to consider an array as ordered or unordered pairs.

Configuration of the compare or merge operation is essential to provide flexibility to provide the best result with your objects. The JSON API allows specific control over the type of operation depending to suit the structure of your object. With compare for instance there is control over arrays, and content can be compared as whole text or individual words. Merge operations, in addition to the compare configuration , allows the priority to be set to the A or B document, and which document content should be used for resolution. Finally, with Patch and Graft there is control over the resolution and direction of operation.

Developers and system architects use the compare or merge operation in data migration and integration workflows as a step to find errors prior to committing data. Another use of the output, which can be processed inline as the result is a valid JSON object, is to create an update process removing the need to clear down data and re-import. The benefit being an update is significantly smaller and can be executed in a fraction of the time.

Other use cases include Content Management Systems (CMS) version control and Quality Assurance (QA) for content workflows. However, one of the most compelling use cases is cloud configuration where complex infrastructure managed by JSON is vital to up time and reliability of service provision. DeltaJSON can be used to detect, report and fix configuration changes, managing version control of infrastructure configuration for aspects such as service permissions and infrastructure provisioning.

DeltaJSON is an interesting tool for managing JSON objects which can be built into your code using the REST API. The service is available for free or as a simple annual subscription, with the Professional tier unlocking merge, patch and graft operations together with options for configuration. For simple or complex objects accuracy is important when building into code, and once you start using DeltaJSON you will see a need for its functionality across your applications.

Top comments (0)