Microsoft.AspNetCore.JsonPatch 10.0.0-preview.6.25358.103

About

Microsoft.AspNetCore.JsonPatch provides ASP.NET Core support for JSON PATCH requests.

How to Use

To use Microsoft.AspNetCore.JsonPatch, follow these steps:

Installation

dotnet add package Microsoft.AspNetCore.JsonPatch
dotnet add package Microsoft.AspNetCore.Mvc.NewtonsoftJson

Configuration

To enable JSON Patch support, call AddNewtonsoftJson in your ASP.NET Core app's Program.cs:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddControllers()
    .AddNewtonsoftJson();

Configure when using System.Text.Json

To add support for JSON Patch using Newtonsoft.Json while continuing to use System.Text.Json for other input and output formatters:

  1. Update your Program.cs with logic to construct a NewtonsoftJsonPatchInputFormatter:
    static NewtonsoftJsonPatchInputFormatter GetJsonPatchInputFormatter()
    {
        var builder = new ServiceCollection()
            .AddLogging()
            .AddMvc()
            .AddNewtonsoftJson()
            .Services.BuildServiceProvider();
    
        return builder
            .GetRequiredService<IOptions<MvcOptions>>()
            .Value
            .InputFormatters
            .OfType<NewtonsoftJsonPatchInputFormatter>()
            .First();
    }
    
  2. Configure the input formatter:
    var builder = WebApplication.CreateBuilder(args);
    
    builder.Services.AddControllers(options =>
    {
        options.InputFormatters.Insert(0, GetJsonPatchInputFormatter());
    });
    

Usage

To define an action method for a JSON Patch in an API controller:

  1. Annotate it with the HttpPatch attribute
  2. Accept a JsonPatchDocument<TModel>
  3. Call ApplyTo on the patch document to apply changes

For example:

[HttpPatch]
public IActionResult JsonPatchWithModelState(
    [FromBody] JsonPatchDocument<Customer> patchDoc)
{
    if (patchDoc is not null)
    {
        var customer = CreateCustomer();

        patchDoc.ApplyTo(customer, ModelState);

        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        return new ObjectResult(customer);
    }
    else
    {
        return BadRequest(ModelState);
    }
}

In a real app, the code would retrieve the data from a store such as a database and update the database after applying the patch.

Additional Documentation

For additional documentation and examples, refer to the official documentation on JSON Patch in ASP.NET Core.

Feedback & Contributing

Microsoft.AspNetCore.JsonPatch is released as open-source under the MIT license. Bug reports and contributions are welcome at the GitHub repository.

Showing the top 20 packages that depend on Microsoft.AspNetCore.JsonPatch.

Packages Downloads
Microsoft.AspNetCore.Mvc.Formatters.Json
ASP.NET Core MVC formatters for JSON input and output and for JSON PATCH input using Json.NET.
13
Microsoft.AspNetCore.Mvc.Formatters.Json
ASP.NET Core MVC formatters for JSON input and output and for JSON PATCH input using Json.NET.
15
Microsoft.AspNetCore.Mvc.Formatters.Json
ASP.NET Core MVC formatters for JSON input and output and for JSON PATCH input using Json.NET. This package was built from the source code at https://github.com/aspnet/Mvc/tree/a6199bbfbab05583f987bae322fb04566841aaea
19
Microsoft.AspNetCore.Mvc.NewtonsoftJson
ASP.NET Core MVC features that use Newtonsoft.Json. Includes input and output formatters for JSON and JSON PATCH. This package was built from the source code at https://github.com/aspnet/AspNetCore/tree/1bf292d47ac2a0ebda07d8a3f00355dd01915ad5
13
Microsoft.AspNetCore.Mvc.NewtonsoftJson
ASP.NET Core MVC features that use Newtonsoft.Json. Includes input and output formatters for JSON and JSON PATCH. This package was built from the source code at https://github.com/aspnet/AspNetCore/tree/c04846dc66cc97f71d83a83a15437828435f5d44
13
Microsoft.AspNetCore.Mvc.NewtonsoftJson
ASP.NET Core MVC features that use Newtonsoft.Json. Includes input and output formatters for JSON and JSON PATCH. This package was built from the source code at https://github.com/dotnet/aspnetcore/tree/3dfc6fda80a10797b8c8fda1970e7b377fd8ed8d
14
Microsoft.AspNetCore.Mvc.NewtonsoftJson
ASP.NET Core MVC features that use Newtonsoft.Json. Includes input and output formatters for JSON and JSON PATCH. This package was built from the source code at https://github.com/dotnet/aspnetcore/tree/3fe12b935c03138f76364dc877a7e069e254b5b2
13
Microsoft.AspNetCore.Mvc.NewtonsoftJson
ASP.NET Core MVC features that use Newtonsoft.Json. Includes input and output formatters for JSON and JSON PATCH. This package was built from the source code at https://github.com/dotnet/aspnetcore/tree/773e8cc3fbdc2c4ffbd57c1f53f21649ef94c35c
13
Microsoft.AspNetCore.Mvc.NewtonsoftJson
ASP.NET Core MVC features that use Newtonsoft.Json. Includes input and output formatters for JSON and JSON PATCH. This package was built from the source code at https://github.com/dotnet/aspnetcore/tree/d47e49e9c1e173ac90821f7e89cc38e710274241
13
Microsoft.AspNetCore.Mvc.NewtonsoftJson
ASP.NET Core MVC features that use Newtonsoft.Json. Includes input and output formatters for JSON and JSON PATCH. This package was built from the source code at https://github.com/dotnet/aspnetcore/tree/d827c653b787c07de908240b7746ce34d3e6271e
14
Microsoft.AspNetCore.Mvc.NewtonsoftJson
ASP.NET Core MVC features that use Newtonsoft.Json. Includes input and output formatters for JSON and JSON PATCH. This package was built from the source code at https://github.com/dotnet/aspnetcore/tree/e5f183b656a0e8bc087108130a5a9b54ae94494e
13

.NET Framework 4.6.2

.NET 10.0

.NET Standard 2.0

Version Downloads Last updated
10.0.1 0 09.12.2025
10.0.0 2 28.11.2025
10.0.0-rc.2.25502.107 1 18.12.2025
10.0.0-rc.1.25451.107 1 18.12.2025
10.0.0-preview.7.25380.108 2 21.08.2025
10.0.0-preview.6.25358.103 1 08.08.2025
10.0.0-preview.5.25277.114 4 08.06.2025
10.0.0-preview.4.25258.110 5 24.05.2025
10.0.0-preview.3.25172.1 4 23.05.2025
10.0.0-preview.2.25164.1 7 29.03.2025
10.0.0-preview.1.25120.3 7 13.03.2025
9.0.11 2 29.11.2025
9.0.10 1 04.12.2025
9.0.9 5 16.09.2025
9.0.8 6 21.08.2025
9.0.7 5 06.08.2025
9.0.6 6 22.06.2025
9.0.5 8 23.05.2025
9.0.4 7 23.05.2025
9.0.3 11 12.03.2025
9.0.2 10 12.03.2025
9.0.1 9 23.01.2025
9.0.0 11 13.01.2025
9.0.0-rc.2.24474.3 8 15.01.2025
9.0.0-rc.1.24452.1 9 23.01.2025
9.0.0-preview.7.24406.2 8 16.08.2024
9.0.0-preview.6.24328.4 7 16.01.2025
9.0.0-preview.5.24306.11 7 31.01.2025
9.0.0-preview.4.24267.6 7 16.01.2025
9.0.0-preview.3.24172.13 7 31.01.2025
9.0.0-preview.2.24128.4 5 16.01.2025
9.0.0-preview.1.24081.5 6 16.01.2025
8.0.22 1 29.11.2025
8.0.21 1 30.11.2025
8.0.20 1 30.11.2025
8.0.19 2 21.08.2025
8.0.18 1 07.08.2025
8.0.17 4 22.06.2025
8.0.16 4 23.05.2025
8.0.15 3 23.05.2025
8.0.14 6 12.03.2025
8.0.13 6 12.03.2025
8.0.12 6 05.02.2025
8.0.11 7 23.01.2025
8.0.10 7 23.01.2025
8.0.8 10 29.01.2025
8.0.7 11 23.01.2025
8.0.6 12 23.01.2025
8.0.5 11 23.01.2025
8.0.4 11 23.01.2025
8.0.3 11 23.01.2025
8.0.2 10 16.01.2025
8.0.1 10 31.01.2025
8.0.0 10 30.01.2025
8.0.0-rc.2.23480.2 6 27.01.2025
8.0.0-rc.1.23421.29 6 23.01.2025
8.0.0-preview.7.23375.9 4 17.01.2025
8.0.0-preview.6.23329.11 7 23.01.2025
8.0.0-preview.5.23302.2 5 16.01.2025
8.0.0-preview.4.23260.4 7 30.01.2025
8.0.0-preview.3.23177.8 7 23.01.2025
8.0.0-preview.2.23153.2 7 16.01.2025
8.0.0-preview.1.23112.2 7 16.01.2025
7.0.20 6 15.01.2025
7.0.19 6 31.01.2025
7.0.18 6 23.01.2025
7.0.17 8 23.01.2025
7.0.16 8 23.01.2025
7.0.15 6 16.01.2025
7.0.14 6 23.01.2025
7.0.13 6 16.01.2025
7.0.12 6 16.01.2025
7.0.11 7 30.01.2025
7.0.10 9 23.01.2025
7.0.9 10 23.01.2025
7.0.8 11 30.01.2025
7.0.7 11 23.01.2025
7.0.5 10 30.01.2025
7.0.4 11 30.01.2025
7.0.3 12 23.01.2025
7.0.2 11 16.01.2025
7.0.1 11 23.01.2025
7.0.0 11 23.01.2025
7.0.0-rc.2.22476.2 6 16.01.2025
7.0.0-rc.1.22427.2 7 23.01.2025
7.0.0-preview.7.22376.6 7 16.01.2025
7.0.0-preview.6.22330.3 8 29.01.2025
7.0.0-preview.5.22303.8 6 16.01.2025
7.0.0-preview.4.22251.1 6 16.01.2025
7.0.0-preview.3.22178.4 6 30.01.2025
7.0.0-preview.2.22153.2 6 16.01.2025
7.0.0-preview.1.22109.13 8 17.01.2025
6.0.36 7 28.01.2025
6.0.35 8 30.01.2025
6.0.33 6 23.01.2025
6.0.32 7 30.01.2025
6.0.31 7 23.01.2025
6.0.30 8 23.01.2025
6.0.29 9 23.01.2025
6.0.28 6 23.01.2025
6.0.27 7 30.01.2025
6.0.26 7 23.01.2025
6.0.25 6 30.01.2025
6.0.24 6 23.01.2025
6.0.23 6 23.01.2025
6.0.22 6 30.01.2025
6.0.21 4 17.01.2025
6.0.20 6 23.01.2025
6.0.19 6 23.01.2025
6.0.18 7 23.01.2025
6.0.16 7 29.01.2025
6.0.15 8 30.01.2025
6.0.14 9 23.01.2025
6.0.13 7 23.01.2025
6.0.12 6 16.01.2025
6.0.11 8 23.01.2025
6.0.10 6 30.01.2025
6.0.9 10 30.01.2025
6.0.8 10 30.01.2025
6.0.7 10 30.01.2025
6.0.6 11 23.01.2025
6.0.5 11 23.01.2025
6.0.4 11 23.01.2025
6.0.3 10 30.01.2025
6.0.2 11 16.01.2025
6.0.1 12 23.01.2025
6.0.0 12 23.01.2025
6.0.0-rc.2.21480.10 6 23.01.2025
6.0.0-rc.1.21452.15 6 30.01.2025
6.0.0-preview.7.21378.6 6 16.01.2025
6.0.0-preview.6.21355.2 7 30.01.2025
6.0.0-preview.5.21301.17 6 23.01.2025
6.0.0-preview.4.21253.5 7 30.01.2025
6.0.0-preview.3.21201.13 6 16.01.2025
6.0.0-preview.2.21154.6 7 30.01.2025
6.0.0-preview.1.21103.6 8 16.01.2025
5.0.17 5 16.01.2025
5.0.16 6 23.01.2025
5.0.15 9 23.01.2025
5.0.14 6 11.01.2025
5.0.13 6 30.01.2025
5.0.12 8 03.10.2024
5.0.11 6 31.01.2025
5.0.10 5 16.01.2025
5.0.9 10 30.01.2025
5.0.8 10 16.01.2025
5.0.7 11 30.01.2025
5.0.6 11 03.10.2024
5.0.5 10 16.01.2025
5.0.4 9 16.01.2025
5.0.3 12 16.01.2025
5.0.2 11 16.01.2025
5.0.1 11 16.01.2025
5.0.0 11 16.01.2025
5.0.0-rc.2.20475.17 8 30.01.2025
5.0.0-rc.1.20451.17 7 30.01.2025
5.0.0-preview.8.20414.8 6 16.01.2025
5.0.0-preview.7.20365.19 7 29.01.2025
5.0.0-preview.6.20312.15 5 16.01.2025
5.0.0-preview.5.20279.2 6 16.01.2025
5.0.0-preview.4.20257.10 5 16.01.2025
5.0.0-preview.3.20215.14 6 29.01.2025
5.0.0-preview.2.20167.3 8 16.01.2025
5.0.0-preview.1.20124.5 5 16.01.2025
3.1.32 7 30.01.2025
3.1.31 7 30.01.2025
3.1.30 7 23.01.2025
3.1.29 7 23.01.2025
3.1.28 7 23.01.2025
3.1.27 9 23.01.2025
3.1.26 6 23.01.2025
3.1.25 7 30.01.2025
3.1.24 6 16.01.2025
3.1.23 7 23.01.2025
3.1.22 6 23.01.2025
3.1.21 6 30.01.2025
3.1.20 6 30.01.2025
3.1.19 6 23.01.2025
3.1.18 7 23.01.2025
3.1.17 7 16.01.2025
3.1.16 6 30.01.2025
3.1.15 7 23.01.2025
3.1.14 7 30.01.2025
3.1.13 7 30.01.2025
3.1.12 6 16.01.2025
3.1.11 7 30.01.2025
3.1.10 6 30.01.2025
3.1.9 12 23.01.2025
3.1.8 10 23.01.2025
3.1.7 8 23.01.2025
3.1.6 11 23.01.2025
3.1.5 10 16.01.2025
3.1.4 12 23.01.2025
3.1.3 9 30.01.2025
3.1.2 10 16.01.2025
3.1.1 10 23.01.2025
3.1.0 12 23.01.2025
3.1.0-preview3.19555.2 6 30.01.2025
3.1.0-preview2.19528.8 9 23.01.2025
3.1.0-preview1.19508.20 6 31.01.2025
3.0.3 9 23.01.2025
3.0.2 10 16.01.2025
3.0.0 11 16.01.2025
3.0.0-rc1.19457.4 7 23.01.2025
3.0.0-preview9.19424.4 9 23.01.2025
3.0.0-preview8.19405.7 6 30.01.2025
3.0.0-preview7.19365.7 6 30.01.2025
3.0.0-preview6.19307.2 5 16.01.2025
3.0.0-preview5-19227-01 6 16.01.2025
3.0.0-preview4-19216-03 8 23.01.2025
3.0.0-preview3-19153-02 7 30.01.2025
3.0.0-preview-19075-0444 8 16.01.2025
3.0.0-preview-18579-0056 9 16.01.2025
2.3.0 11 27.01.2025
2.2.0 14 23.01.2025
2.2.0-preview3-35497 7 29.01.2025
2.2.0-preview2-35157 8 27.01.2025
2.2.0-preview1-35029 7 23.01.2025
2.1.1 10 23.01.2025
2.1.0 11 30.01.2025
2.1.0-rc1-final 8 23.01.2025
2.1.0-preview2-final 7 15.01.2025
2.1.0-preview1-final 6 15.01.2025
2.0.0 12 23.01.2025
2.0.0-preview2-final 6 16.01.2025
2.0.0-preview1-final 6 30.01.2025
1.1.2 10 16.01.2025
1.1.1 13 23.01.2025
1.1.0 10 23.01.2025
1.1.0-preview1-final 6 23.01.2025
1.0.0 11 29.01.2025
1.0.0-rc2-final 8 30.01.2025