JsonPatch.Net 3.3.0

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
Core abstractions for the .NET Aspire application model.
5
Aspire.Hosting.AppHost
Core library and MSBuild logic for .NET Aspire AppHost projects.
3
Aspire.Hosting.AppHost
Core library and MSBuild logic for .NET Aspire AppHost projects.
4

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 3 02/20/2025
3.2.3 0 12/05/2024
3.2.2 0 12/03/2024
3.2.1 0 12/03/2024
3.2.0 0 11/30/2024
3.1.1 0 07/02/2024
3.1.0 0 05/01/2024
3.0.0.2 0 04/19/2024
3.0.0.1 2 02/21/2025
3.0.0 0 02/03/2024
2.1.0 0 06/12/2023
2.0.6 0 03/09/2023
2.0.5 2 02/22/2025
2.0.4 1 02/22/2025
2.0.3 0 08/12/2022
2.0.2 2 02/22/2025
2.0.1 0 06/16/2022
2.0.0 0 06/13/2022
1.1.2 0 12/05/2021
1.1.1 0 11/11/2021
1.1.0 0 09/13/2021
1.0.6 3 02/21/2025
1.0.5 0 06/20/2021
1.0.4 1 02/23/2025
1.0.3 0 12/19/2020
1.0.1 0 10/18/2020
1.0.0 0 10/16/2020