JsonPatch.Net 3.0.0.2

Summary

JsonPatch.Net implements JSON Patch, RFC 6902, a JSON document structure for expressing a sequence of operations to apply to another JSON document.

Usage

Deserialize and apply immediately:

var patch = JsonSerializer.Deserialize<JsonPatch>(patchString);
var doc = JsonNode.Parse(docString);
var result = patch.Apply(doc);

Or you can build a patch inline:

var patch = new JsonPatch(PatchOperation.Add("/foo/bar", "baz"),
                          PatchOperation.Test("/foo/biz", false));

There is also limited patch generation support:

// parse your data
var start = JsonNode.Parse("[{\"test\":\"test123\"},{\"test\":\"test321\"},{\"test\":[1,2,3]},{\"test\":[1,2,4]}]");
// or build it inline
var target = new JsonArray{
  new JsonObject { ["test"] = "test123" },
  new JsonObject { ["test"] = "test32132" },
  new JsonObject { ["test1"] = "test321" },
  new JsonObject { ["test"] = new JsonArray{ 1, 2, 3 } },
  new JsonObject { ["test"] = new JsonArray{ 1, 2, 3 } },
}

var patch = start.CreatePatch(target);

/*
Result:
[
  {"op":"replace","path":"/1/test","value":"test32132"},
  {"op":"remove","path":"/2/test"},
  {"op":"add","path":"/2/test1","value":"test321"},
  {"op":"replace","path":"/3/test/2","value":3},
  {"op":"add","path":"/4","value":{"test":[1,2,3]}}
]
*/

Showing the top 20 packages that depend on JsonPatch.Net.

Packages Downloads
Aspire.Hosting
Core abstractions for the .NET Aspire application model.
4
Aspire.Hosting.Redis
Redis® support for .NET Aspire.
3
Aspire.Hosting.Redis
Redis® support for .NET Aspire.
2
Aspire.Hosting
Core abstractions for the .NET Aspire application model.
2

Release notes can be found at https://docs.json-everything.net/rn-json-patch/

.NET 8.0

.NET Standard 2.0

Version Downloads Last updated
3.3.0 2 03/07/2025
3.2.3 2 03/07/2025
3.2.2 2 03/07/2025
3.2.1 2 03/07/2025
3.2.0 2 03/07/2025
3.1.1 2 03/07/2025
3.1.0 2 03/07/2025
3.0.0.2 2 03/07/2025
3.0.0.1 2 03/07/2025
3.0.0 2 03/07/2025
2.1.0 2 03/07/2025
2.0.6 2 03/07/2025
2.0.5 2 03/07/2025
2.0.4 2 03/07/2025
2.0.3 2 03/07/2025
2.0.2 2 03/07/2025
2.0.1 2 03/07/2025
2.0.0 2 03/07/2025
1.1.2 2 03/07/2025
1.1.1 2 03/07/2025
1.1.0 2 03/07/2025
1.0.6 2 03/07/2025
1.0.5 2 03/07/2025
1.0.4 2 03/07/2025
1.0.3 2 03/07/2025
1.0.1 2 03/07/2025
1.0.0 2 03/07/2025