Microsoft.AspNetCore.JsonPatch 10.0.0-preview.5.25277.114

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
Microsoft.AspNetCore.App
Provides a default set of APIs for building an ASP.NET Core application. This package requires the ASP.NET Core runtime. This runtime is installed by the .NET Core SDK, or can be acquired separately using installers available at https://aka.ms/dotnet-download.
Microsoft.AspNetCore.App
Microsoft.AspNetCore.App
Microsoft.AspNetCore.App
Provides a default set of APIs for building an ASP.NET Core application. This package requires the ASP.NET Core runtime. This runtime is installed by the .NET Core SDK, or can be acquired separately using installers available at https://aka.ms/dotnet-download. This package was built from the source at: https://github.com/aspnet/Universe/tree/1016eae4004686f7fdad13f5c329f63bbae1f3a1
Microsoft.AspNetCore.App
Provides a default set of APIs for building an ASP.NET Core application. This package requires the ASP.NET Core runtime. This runtime is installed by the .NET Core SDK, or can be acquired separately using installers available at https://aka.ms/dotnet-download. This package was built from the source at: https://github.com/aspnet/Universe/tree/244e037a222a7cd0a17feafb7f3a625fde40de97

.NET Framework 4.6.2

.NET 10.0

.NET Standard 2.0

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