3.2.3
- #825 - Remove and replace not working when
path
pointer ends with-
. (Cannot access end of array.)
3.2.2
- #825 - Copy not working when
to
pointer ends with-
. (Cannot copy to end of array.)
3.2.1
- #825 - Move not working when
to
pointer ends with-
. (Cannot move to end of array.) - #826 - Copy should insert values, not overwrite them.
Thanks to @vimateck for reporting and identifying the sources for these issues.
3.2.0
Add .Net 9.0 support.
3.1.1
Update to use JsonPointer.Net v5.0.2.
3.1.0
Updated to use JsonPointer.Net v5.0.0, which contains breaking changes (release notes).
3.0.0.x
#711 - Nuget package meta-data updates; no functional changes from previous version.
3.0.0
Updated for multi-framework support with .Net Standard 2.0 and .Net 8 with Native AOT support, including updating System.Text.Json from v6 to v8.
Most of the changes to support Native AOT involve either updating internal implementation or creating overloads that do. Whatever could not be updated was marked as requiring reflection, which will generate warnings when building Native AOT applications.
Breaking changes
Dropping support for .Net Standard 3.1 - May still be used, but exact behavior cannot be guaranteed.
Additions
JsonPatch.TypeInfoResolver
to expose all of the type resolvers contained in the library. Can be used to create a combined SerializationOptions
by using a Json.More.TypeResolverOptionsManager
in your JsonSerializerContext
.
Other chanages
PatchExtensions.Apply()
and .Create()
, including all overloads, have been marked as AOT-incompatible since they use unsupported reflection.
2.1.0
#471 - Make patch json converter public to support .Net source generation. Thanks to @pwelter34 for highlighting this use case.
2.0.6
#397 - Fixed an issue where replace
needs to check that the target location exists before proceeding with the add
portion of its operation.
2.0.5
#393 - Fixed an InvalidOperationException
from some of the operations.
2.0.4
#322 - @z4kn4fein discovered and fixed an issue in the move
operation logic.
2.0.3
#315 - @z4kn4fein noticed that the serializer options weren’t actually being passed into the .Apply()
call.
2.0.2 (no PR)
#291 - Improved patch generation for arrays.
2.0.1 (no PR)
#288 - Just bumping version to pick up the latest Json.More.Net by default. This package pull Json.More.Net transitively via JsonPointer.Net which wasn’t updated with the move to JsonNode
.
2.0.0
#243 - Updated System.Text.Json to version 6.
Updated all functionality to use JsonNode
instead of JsonElement
.
Breaking Changes
JsonElement
-> JsonNode
type exchange changes not listed.
JsonPatch.Apply()
now takesJsonNode
.CreatePatch(JsonDocument, JsonDocument)
removed.CreatePatch(JsonElement, JsonElement)
replaced with.CreatePatch(JsonNode?, JsonNode?)
PatchOperation
converted to a classPatchOperation
static methods which takeJsonElementProxy
removed asJsonNode
defines implicit casts for the supported typesPatchResult.Result
update toJsonNode?
Additional Changes
.Apply<T>()
extension method now takes optional serializer options
1.1.2
#192 - @LordXaosa found some issues with patch generation.
1.1.1
Updated JsonPointer.Net to v2.0.0. Please see release notes for that library as it contains breaking changes.
1.1.0
#160 - Added JSON Patch creation via comparison of objects or JSON data. Credit for implementation to @LordXaosa.
Added JsonElementProxy
overloads for PatchOperation.Add()
, PatchOperation.Replace()
, and PatchOperation.Test()
.
1.0.6
#132 (Fixed on #133) - Fixed some memory management issues around JsonDocument
and JsonElement
. Thanks to @ddunkin for finding and fixing these.
#146 - Fixed an issue during operation construction that appeared when attempting to use JSON Patch in an MVC controller.
1.0.5
Added support for nullable reference types.
1.0.4
Signed the DLL for strong name compatibility.
1.0.3
Bump for publish. No functional change.
1.0.2
Added debug symbols to package. No functional change.
1.0.1
Implemented patch equality.
1.0.0
Initial release.