- 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.Json
required is bumped up to8.0.0
JsonDiffPatcher.DeepEquals(JsonNode)
now simply callsJsonNode.DeepEquals(JsonNode, JsonNode)
method introduced in this issueJsonDiffPatcher.Diff
method is unchanged because it does not useJsonNode.DeepEquals(JsonNode, JsonNode)
method internally- You can still use
JsonDiffPatcher.DeepEquals
method when invoked with custom comparison options - When invoked against
JsonDocument
andJsonElement
,DeepEquals
method is unchanged
- Removed
JsonDiffPatcher.DeepClone
method. You can migrate toJsonNode.DeepClone
method introduced in this issue
- Targeting framework changes:
- Added
PropertyFilter
toJsonDiffOptions
(#29) - Fixed bug in diffing null-valued properties (#31)
- Added
DeepEquals
implementation forJsonDocument
andJsonElement
- Performance improvements in raw text comparison mode
- Removed unnecessary allocation when default diff option is used
- Removed one
DeepEquals
overload that was accidentally exposed as a public method
- Major performance improvement in array comparison
- Performance improvements in
DeepEquals
andJsonValueComparer
- [BREAKING CHANGE] Breaking changes in array comparison:
- Removed
JsonDiffOptions.PreferFuzzyArrayItemMatch
option JsonDiffOptions.ArrayItemMatcher
is 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
JsonValueComparer
that implements semantic comparison of twoJsonValue
objects (including the ones backed byJsonElement
) - [BREAKING CHANGE]
Diff
method no longer usesobject.Equals
to compare values encapsulated inJsonValue<T>
.JsonValueComparer
is used instead - Added semantic equality to
DeepEquals
method - Added options to
JsonDiffOptions
to enable semantic diff - Added
JsonDiffPatcher.DefaultOptions
for customizing default diff options
- Initial release