JsonPatch.Net 3.2.1

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]}}
]
*/

Sponsorship

If you found this library helpful and would like to promote continued development, please consider sponsoring the maintainers.

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

Packages Downloads
Aspire.Hosting.Python
Python support for .NET Aspire.
4
Aspire.Hosting.Python
Python support for .NET Aspire.
3
Aspire.Hosting.NodeJs
Node.js support for .NET Aspire.
3
Aspire.Hosting.Testing
Testing support for the .NET Aspire application model.
3
Aspire.Hosting.Azure
Azure resource types for .NET Aspire.
3
Aspire.Hosting.AppHost
Core library and MSBuild logic for .NET Aspire AppHost projects.
3
Aspire.Hosting
Core abstractions for the .NET Aspire application model.
3

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

.NET 8.0

.NET 9.0

.NET Standard 2.0

Version Downloads Last updated
3.3.0 2 6/7/2025
3.2.3 1 6/14/2025
3.2.2 2 6/14/2025
3.2.1 1 6/14/2025
3.2.0 1 6/14/2025
3.1.1 1 6/14/2025
3.1.0 1 6/14/2025
3.0.0.2 1 6/8/2025
3.0.0.1 1 6/8/2025
3.0.0 1 6/14/2025
2.1.0 1 6/9/2025
2.0.6 1 6/14/2025
2.0.5 1 6/14/2025
2.0.4 1 6/14/2025
2.0.3 1 6/14/2025
2.0.2 1 6/14/2025
2.0.1 1 6/14/2025
2.0.0 1 6/14/2025
1.1.2 1 6/14/2025
1.1.1 1 6/12/2025
1.1.0 1 6/14/2025
1.0.6 1 6/14/2025
1.0.5 1 6/14/2025
1.0.4 1 6/14/2025
1.0.3 1 6/14/2025
1.0.1 1 6/14/2025
1.0.0 1 6/14/2025