Can anybody suggest some Java Library or Code to get a diff of two JSON Strings?
Personally, I would suggest de-serializing the JSON strings back into objects and comparing the objects.
That way you don't have to worry about extra whitespace/formatting between the two JSON strings (two strings could be formatted wildly different and still represent equal objects).
For one specific suggestion, you could use Jackson, bind JSON strings into JSON trees, and compare them for equality. Something like:
ObjectMapper mapper = new ObjectMapper(); JsonNode tree1 = mapper.readTree(jsonString1); JsonNode tree2 = mapper.readTree(jsonString2); if (tree1.equals(tree2)) { // yes, contents are equal -- note, ordering of arrays matters, objects not } else { // not equal }
equality comparison is by value and should work as expected with respect to JSON arrays, objects and primitive values.