java-json-tools / json-patch

An RFC 6902 (JSON Patch) and reverse, plus RFC 7386 (JSON Merge Patch), implementation in Java using Jackson (2.2.x)
Other
637 stars 185 forks source link

Ignore specific fields while calculating JSON diff. #80

Open surajgautam opened 4 years ago

surajgautam commented 4 years ago

When I find the difference between two JsonNodes, I shall be able to ignore specific fields.

Example:

Foo.java has id and name fields and I have two different objects of this class say foo1 and foo2.

When I compare the diff using JsonDiff class, I shall be able to ignore id comparison and be able to find diff for name field only.

   JsonNode oldJsonNode = objectMapper.readTree(objectMapper.writeValueAsString(foo1));
    JsonNode newJsonNode = objectMapper.readTree(objectMapper.writeValueAsString(foo2));
    JsonNode jsonDiff = JsonDiff.asJson(oldJsonNode, newJsonNode);

I want to exclude id field in jsonDiff object.

jonas-grgt commented 4 years ago

This could be implemented using a method overload having a third parameter of type vararg of String.

JsonNode jsonDiff = JsonDiff.asJsonIgnoringGivenFields(oldJsonNode, newJsonNode, "id");