Microsoft.AspNetCore.JsonPatch 10.0.0

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.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/ae1a6cbe225b99c0bf38b7e31bf60cb653b73a52
58
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/6a6d775f49623bbd742c02f89d373630668547bb
56
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/d1fa2cb155ab9226f20b87ab0d7a1eb16b8a8b69
50
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/1dcf7acfacf0fe154adcc23270cb0da11ff44ace
49
KubernetesClient
Client library for the Kubernetes open source container orchestrator.
48
KubernetesClient
Client library for the Kubernetes open source container orchestrator.
47
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/8ca3954ca335343ce6dd1d14d8d1c6c3369710b7
47
KubernetesClient
Client library for the Kubernetes open source container orchestrator.
46
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/e56abc45c4f8adc518abfc11a59849d616431e2c
46
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/fc93e595ceffbb1e3e85532bf454e92a6a80dd6b
46
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/331b52b370cd4e7fe2919d4d4cda27412e2ab1cc
46
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/e1ad9117a4dac3b0f5f2a7e2b10b43b7016379b9
46
KubernetesClient
Client library for the Kubernetes open source container orchestrator.
45
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/f9ae0f5d30be2de3c0de61b5673bd8873231d70a
45

.NET Framework 4.6.2

.NET 10.0

.NET Standard 2.0

Version Downloads Last updated
10.0.0 4 11/13/2025
10.0.0-rc.2.25502.107 7 10/15/2025
10.0.0-rc.1.25451.107 12 9/11/2025
10.0.0-preview.7.25380.108 19 8/13/2025
10.0.0-preview.6.25358.103 21 7/17/2025
10.0.0-preview.5.25277.114 25 6/10/2025
10.0.0-preview.4.25258.110 23 5/15/2025
10.0.0-preview.3.25172.1 26 4/17/2025
10.0.0-preview.2.25164.1 25 3/23/2025
10.0.0-preview.1.25120.3 26 2/26/2025
9.0.11 5 11/13/2025
9.0.10 6 10/15/2025
9.0.9 13 9/11/2025
9.0.8 22 8/7/2025
9.0.7 14 7/11/2025
9.0.6 26 6/12/2025
9.0.5 23 5/16/2025
9.0.4 29 4/15/2025
9.0.3 29 3/14/2025
9.0.2 25 2/20/2025
9.0.1 38 1/18/2025
9.0.0 30 12/14/2024
9.0.0-rc.2.24474.3 26 12/15/2024
9.0.0-rc.1.24452.1 28 9/12/2024
9.0.0-preview.7.24406.2 37 8/22/2024
9.0.0-preview.6.24328.4 32 8/4/2024
9.0.0-preview.5.24306.11 35 8/13/2024
9.0.0-preview.4.24267.6 30 7/14/2024
9.0.0-preview.3.24172.13 28 4/21/2024
9.0.0-preview.2.24128.4 43 4/21/2024
9.0.0-preview.1.24081.5 33 3/5/2024
8.0.22 6 11/13/2025
8.0.21 11 10/15/2025
8.0.20 11 9/11/2025
8.0.19 19 8/7/2025
8.0.18 21 7/11/2025
8.0.17 21 6/12/2025
8.0.16 25 5/16/2025
8.0.15 23 4/16/2025
8.0.14 28 3/14/2025
8.0.13 26 2/20/2025
8.0.12 34 1/18/2025
8.0.11 30 12/15/2024
8.0.10 25 12/15/2024
8.0.8 37 8/23/2024
8.0.7 36 7/11/2024
8.0.6 41 6/27/2024
8.0.5 36 8/8/2024
8.0.4 42 4/19/2024
8.0.3 39 4/19/2024
8.0.2 37 3/5/2024
8.0.1 52 3/5/2024
8.0.0 34 3/5/2024
8.0.0-rc.2.23480.2 33 3/5/2024
8.0.0-rc.1.23421.29 35 3/5/2024
8.0.0-preview.7.23375.9 39 3/5/2024
8.0.0-preview.6.23329.11 32 3/5/2024
8.0.0-preview.5.23302.2 46 7/2/2023
8.0.0-preview.4.23260.4 43 3/5/2024
8.0.0-preview.3.23177.8 33 3/5/2024
8.0.0-preview.2.23153.2 36 3/5/2024
8.0.0-preview.1.23112.2 39 3/5/2024
7.0.20 42 8/3/2024
7.0.19 32 8/8/2024
7.0.18 40 4/17/2024
7.0.17 37 4/17/2024
7.0.16 36 3/5/2024
7.0.15 39 3/5/2024
7.0.14 40 3/5/2024
7.0.13 39 3/5/2024
7.0.12 37 3/5/2024
7.0.11 38 3/5/2024
7.0.10 33 3/5/2024
7.0.9 46 3/5/2024
7.0.8 38 3/5/2024
7.0.7 33 3/5/2024
7.0.5 52 3/5/2024
7.0.4 39 3/5/2024
7.0.3 41 3/5/2024
7.0.2 43 3/5/2024
7.0.1 43 3/5/2024
7.0.0 39 3/5/2024
7.0.0-rc.2.22476.2 42 3/5/2024
7.0.0-rc.1.22427.2 42 3/5/2024
7.0.0-preview.7.22376.6 40 2/28/2024
7.0.0-preview.6.22330.3 34 3/5/2024
7.0.0-preview.5.22303.8 39 3/5/2024
7.0.0-preview.4.22251.1 37 3/5/2024
7.0.0-preview.3.22178.4 35 3/5/2024
7.0.0-preview.2.22153.2 31 3/5/2024
7.0.0-preview.1.22109.13 39 3/5/2024
6.0.36 26 12/16/2024
6.0.35 31 12/16/2024
6.0.33 31 8/22/2024
6.0.32 35 7/11/2024
6.0.31 31 8/8/2024
6.0.30 39 8/11/2024
6.0.29 40 4/15/2024
6.0.28 36 4/21/2024
6.0.27 37 3/5/2024
6.0.26 37 3/5/2024
6.0.25 39 3/5/2024
6.0.24 35 3/5/2024
6.0.23 41 3/5/2024
6.0.22 41 3/5/2024
6.0.21 36 3/5/2024
6.0.20 39 3/5/2024
6.0.19 39 3/5/2024
6.0.18 40 3/5/2024
6.0.16 41 3/5/2024
6.0.15 37 3/5/2024
6.0.14 36 3/5/2024
6.0.13 46 3/5/2024
6.0.12 38 3/5/2024
6.0.11 39 3/5/2024
6.0.10 37 3/5/2024
6.0.9 47 3/5/2024
6.0.8 46 3/5/2024
6.0.7 41 3/5/2024
6.0.6 42 3/5/2024
6.0.5 40 3/5/2024
6.0.4 43 3/5/2024
6.0.3 33 3/5/2024
6.0.2 34 3/5/2024
6.0.1 37 3/5/2024
6.0.0 40 3/5/2024
6.0.0-rc.2.21480.10 41 3/5/2024
6.0.0-rc.1.21452.15 32 3/5/2024
6.0.0-preview.7.21378.6 38 3/5/2024
6.0.0-preview.6.21355.2 45 3/5/2024
6.0.0-preview.5.21301.17 40 3/5/2024
6.0.0-preview.4.21253.5 38 3/5/2024
6.0.0-preview.3.21201.13 35 3/5/2024
6.0.0-preview.2.21154.6 33 3/5/2024
6.0.0-preview.1.21103.6 33 3/5/2024
5.0.17 39 3/5/2024
5.0.16 33 3/5/2024
5.0.15 37 3/5/2024
5.0.14 42 3/5/2024
5.0.13 38 3/5/2024
5.0.12 42 3/5/2024
5.0.11 37 3/5/2024
5.0.10 41 3/5/2024
5.0.9 37 3/5/2024
5.0.8 41 3/5/2024
5.0.7 46 3/5/2024
5.0.6 47 3/5/2024
5.0.5 34 3/5/2024
5.0.4 42 3/5/2024
5.0.3 41 3/5/2024
5.0.2 41 3/5/2024
5.0.1 42 3/5/2024
5.0.0 37 4/12/2022
5.0.0-rc.2.20475.17 33 3/5/2024
5.0.0-rc.1.20451.17 35 3/5/2024
5.0.0-preview.8.20414.8 33 3/5/2024
5.0.0-preview.7.20365.19 33 3/5/2024
5.0.0-preview.6.20312.15 39 3/5/2024
5.0.0-preview.5.20279.2 41 3/5/2024
5.0.0-preview.4.20257.10 44 3/5/2024
5.0.0-preview.3.20215.14 36 3/5/2024
5.0.0-preview.2.20167.3 34 3/5/2024
5.0.0-preview.1.20124.5 35 3/5/2024
3.1.32 42 3/5/2024
3.1.31 37 3/5/2024
3.1.30 31 3/5/2024
3.1.29 38 3/5/2024
3.1.28 40 3/5/2024
3.1.27 43 3/5/2024
3.1.26 31 3/5/2024
3.1.25 33 3/5/2024
3.1.24 40 3/5/2024
3.1.23 39 3/5/2024
3.1.22 45 3/5/2024
3.1.21 42 3/5/2024
3.1.20 37 3/5/2024
3.1.19 51 3/5/2024
3.1.18 44 3/5/2024
3.1.17 34 3/5/2024
3.1.16 32 3/5/2024
3.1.15 42 3/5/2024
3.1.14 33 3/5/2024
3.1.13 37 3/5/2024
3.1.12 40 3/5/2024
3.1.11 42 3/5/2024
3.1.10 43 3/5/2024
3.1.9 50 3/5/2024
3.1.8 42 3/5/2024
3.1.7 43 3/5/2024
3.1.6 39 3/5/2024
3.1.5 43 3/5/2024
3.1.4 46 3/5/2024
3.1.3 41 3/5/2024
3.1.2 42 3/5/2024
3.1.1 40 3/5/2024
3.1.0 37 3/5/2024
3.1.0-preview3.19555.2 45 3/5/2024
3.1.0-preview2.19528.8 44 3/5/2024
3.1.0-preview1.19508.20 34 3/5/2024
3.0.3 52 3/5/2024
3.0.2 36 3/5/2024
3.0.0 45 4/12/2022
3.0.0-rc1.19457.4 38 3/5/2024
3.0.0-preview9.19424.4 36 3/5/2024
3.0.0-preview8.19405.7 40 3/5/2024
3.0.0-preview7.19365.7 34 3/5/2024
3.0.0-preview6.19307.2 34 3/5/2024
3.0.0-preview5-19227-01 35 3/5/2024
3.0.0-preview4-19216-03 36 3/5/2024
3.0.0-preview3-19153-02 41 3/5/2024
3.0.0-preview-19075-0444 40 3/5/2024
3.0.0-preview-18579-0056 38 3/5/2024
2.3.0 27 1/18/2025
2.2.0 41 3/5/2024
2.2.0-preview3-35497 33 3/5/2024
2.2.0-preview2-35157 34 2/27/2024
2.2.0-preview1-35029 38 3/5/2024
2.1.1 36 3/5/2024
2.1.0 39 3/5/2024
2.1.0-rc1-final 37 3/5/2024
2.1.0-preview2-final 33 3/5/2024
2.1.0-preview1-final 40 3/5/2024
2.0.0 44 3/5/2024
2.0.0-preview2-final 41 3/5/2024
2.0.0-preview1-final 40 3/5/2024
1.1.2 47 3/5/2024
1.1.1 40 3/5/2024
1.1.0 43 3/5/2024
1.1.0-preview1-final 38 3/5/2024
1.0.0 44 3/5/2024
1.0.0-rc2-final 34 3/5/2024