Compare JSON Objects with Jackson
Jackson is one of the most used libraries for comparing JSON objects. Many times, we need to compare two JSON objects to find whether both are the same or different from each other.
In order to use Jakcson for comparing JSON objects, we add the following dependency in our POM.xml file:
By using ObjectMapper class, we can compare:
Let's first understand the comparison of a simple JSON object.
Suppose we have a JSON string which is defined as the jsonString1:
And, we need to compare it with another JSON string which is defined as jsonString2:
Let's take an example to understand how we can compare two simple JSON object by using Jackson:
We use the same techniques for comparing the JSON Objects having nested elements or a list of elements.
Compare JSON Objects with Custom Comparator
The JsonNode.equals() method works fine for most of the cases in comparing two objects. However, Jackson provides one more variant of the equals() method, i.e., JsonNode.equals(comparator, JsonNode) for configuring the custom Java Comparator object.
So, we can also use this variant of the equals() method for comparing two JSON objects. Let's first create a custom comparator, and later on, we will use it for comparing two JSON objects in an example.
Note: Standard equals() method considers values 121 and 121.0 as different.