- This version contains several BREAKING CHANGES:
- Targeting framework changes:
- Added: .NET 8, .NET 7, .NET 6, .NET Framework 4.6.2
- Removed: .NET Standard 2.1, .NET Framework 4.6.1
- Minimum version of
System.Text.Jsonrequired is bumped up to8.0.0 JsonDiffPatcher.DeepEquals(JsonNode)now simply callsJsonNode.DeepEquals(JsonNode, JsonNode)method introduced in this issueJsonDiffPatcher.Diffmethod is unchanged because it does not useJsonNode.DeepEquals(JsonNode, JsonNode)method internally- You can still use
JsonDiffPatcher.DeepEqualsmethod when invoked with custom comparison options - When invoked against
JsonDocumentandJsonElement,DeepEqualsmethod is unchanged
- Removed
JsonDiffPatcher.DeepClonemethod. You can migrate toJsonNode.DeepClonemethod introduced in this issue
- Targeting framework changes:
- Added
PropertyFiltertoJsonDiffOptions(#29) - Fixed bug in diffing null-valued properties (#31)
- Added
DeepEqualsimplementation forJsonDocumentandJsonElement - Performance improvements in raw text comparison mode
- Removed unnecessary allocation when default diff option is used
- Removed one
DeepEqualsoverload that was accidentally exposed as a public method
- Major performance improvement in array comparison
- Performance improvements in
DeepEqualsandJsonValueComparer - [BREAKING CHANGE] Breaking changes in array comparison:
- Removed
JsonDiffOptions.PreferFuzzyArrayItemMatchoption JsonDiffOptions.ArrayItemMatcheris only invoked when array items are not deeply equal
- Removed
- [BREAKING CHANGE] Base64 encoded text is considered as long text if length is greater than or equal to
JsonDiffOptions.TextDiffMinLength
- Added
JsonValueComparerthat implements semantic comparison of twoJsonValueobjects (including the ones backed byJsonElement) - [BREAKING CHANGE]
Diffmethod no longer usesobject.Equalsto compare values encapsulated inJsonValue<T>.JsonValueCompareris used instead - Added semantic equality to
DeepEqualsmethod - Added options to
JsonDiffOptionsto enable semantic diff - Added
JsonDiffPatcher.DefaultOptionsfor customizing default diff options
- Initial release