Microsoft.AspNetCore.JsonPatch 10.0.0-preview.2.25164.1
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:
- Update your
Program.cs
with logic to construct aNewtonsoftJsonPatchInputFormatter
:static NewtonsoftJsonPatchInputFormatter GetJsonPatchInputFormatter() { var builder = new ServiceCollection() .AddLogging() .AddMvc() .AddNewtonsoftJson() .Services.BuildServiceProvider(); return builder .GetRequiredService<IOptions<MvcOptions>>() .Value .InputFormatters .OfType<NewtonsoftJsonPatchInputFormatter>() .First(); }
- 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:
- Annotate it with the
HttpPatch
attribute - Accept a
JsonPatchDocument<TModel>
- 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 |
---|---|
KubernetesClient
Client library for the Kubernetes open source container orchestrator.
|
1 |
Microsoft.AspNetCore.Mvc.Formatters.Json
ASP.NET Core MVC formatters for JSON input and output and for JSON PATCH input using Json.NET.
|
2 |
.NET Framework 4.6.2
- Microsoft.CSharp (>= 4.7.0)
- Newtonsoft.Json (>= 13.0.3)
.NET 10.0
- Newtonsoft.Json (>= 13.0.3)
.NET Standard 2.0
- Microsoft.CSharp (>= 4.7.0)
- Newtonsoft.Json (>= 13.0.3)
Version | Downloads | Last updated |
---|---|---|
10.0.0-preview.3.25172.1 | 0 | 4/10/2025 |
10.0.0-preview.2.25164.1 | 1 | 4/17/2025 |
10.0.0-preview.1.25120.3 | 2 | 3/1/2025 |
9.0.4 | 0 | 4/8/2025 |
9.0.3 | 0 | 3/11/2025 |
9.0.2 | 1 | 3/1/2025 |
9.0.1 | 1 | 1/19/2025 |
9.0.0 | 1 | 11/14/2024 |
9.0.0-rc.2.24474.3 | 1 | 11/14/2024 |
9.0.0-rc.1.24452.1 | 0 | 9/10/2024 |
9.0.0-preview.7.24406.2 | 0 | 8/13/2024 |
9.0.0-preview.6.24328.4 | 1 | 11/13/2024 |
9.0.0-preview.5.24306.11 | 0 | 6/11/2024 |
9.0.0-preview.4.24267.6 | 0 | 5/21/2024 |
9.0.0-preview.3.24172.13 | 0 | 4/11/2024 |
9.0.0-preview.2.24128.4 | 0 | 3/12/2024 |
9.0.0-preview.1.24081.5 | 1 | 11/13/2024 |
8.0.15 | 0 | 4/8/2025 |
8.0.14 | 0 | 3/11/2025 |
8.0.13 | 1 | 3/1/2025 |
8.0.12 | 1 | 1/19/2025 |
8.0.11 | 1 | 11/14/2024 |
8.0.10 | 1 | 11/14/2024 |
8.0.8 | 1 | 11/13/2024 |
8.0.7 | 1 | 11/13/2024 |
8.0.6 | 0 | 5/28/2024 |
8.0.5 | 1 | 11/13/2024 |
8.0.4 | 1 | 11/10/2024 |
8.0.3 | 1 | 11/13/2024 |
8.0.2 | 1 | 11/13/2024 |
8.0.1 | 1 | 11/13/2024 |
8.0.0 | 1 | 3/17/2025 |
8.0.0-rc.2.23480.2 | 1 | 11/13/2024 |
8.0.0-rc.1.23421.29 | 0 | 9/12/2023 |
8.0.0-preview.7.23375.9 | 0 | 8/8/2023 |
8.0.0-preview.6.23329.11 | 1 | 11/13/2024 |
8.0.0-preview.5.23302.2 | 0 | 6/13/2023 |
8.0.0-preview.4.23260.4 | 0 | 5/16/2023 |
8.0.0-preview.3.23177.8 | 1 | 11/13/2024 |
8.0.0-preview.2.23153.2 | 1 | 11/13/2024 |
8.0.0-preview.1.23112.2 | 1 | 11/13/2024 |
7.0.20 | 1 | 11/13/2024 |
7.0.19 | 0 | 5/14/2024 |
7.0.18 | 0 | 4/9/2024 |
7.0.17 | 1 | 11/13/2024 |
7.0.16 | 0 | 2/13/2024 |
7.0.15 | 1 | 11/13/2024 |
7.0.14 | 0 | 11/14/2023 |
7.0.13 | 0 | 10/24/2023 |
7.0.12 | 0 | 10/10/2023 |
7.0.11 | 1 | 11/13/2024 |
7.0.10 | 1 | 11/13/2024 |
7.0.9 | 1 | 11/13/2024 |
7.0.8 | 1 | 11/13/2024 |
7.0.7 | 0 | 6/13/2023 |
7.0.5 | 0 | 4/11/2023 |
7.0.4 | 0 | 3/14/2023 |
7.0.3 | 0 | 2/14/2023 |
7.0.2 | 0 | 1/10/2023 |
7.0.1 | 1 | 11/13/2024 |
7.0.0 | 0 | 11/7/2022 |
7.0.0-rc.2.22476.2 | 1 | 11/13/2024 |
7.0.0-rc.1.22427.2 | 1 | 11/13/2024 |
7.0.0-preview.7.22376.6 | 0 | 8/9/2022 |
7.0.0-preview.6.22330.3 | 0 | 7/12/2022 |
7.0.0-preview.5.22303.8 | 1 | 11/13/2024 |
7.0.0-preview.4.22251.1 | 0 | 5/10/2022 |
7.0.0-preview.3.22178.4 | 0 | 4/13/2022 |
7.0.0-preview.2.22153.2 | 0 | 3/14/2022 |
7.0.0-preview.1.22109.13 | 0 | 2/17/2022 |
6.0.36 | 1 | 11/14/2024 |
6.0.35 | 1 | 11/14/2024 |
6.0.33 | 1 | 11/10/2024 |
6.0.32 | 0 | 7/9/2024 |
6.0.31 | 1 | 11/13/2024 |
6.0.30 | 1 | 11/10/2024 |
6.0.29 | 0 | 4/9/2024 |
6.0.28 | 0 | 3/12/2024 |
6.0.27 | 0 | 2/13/2024 |
6.0.26 | 1 | 11/13/2024 |
6.0.25 | 1 | 11/13/2024 |
6.0.24 | 0 | 10/24/2023 |
6.0.23 | 0 | 10/10/2023 |
6.0.22 | 0 | 9/12/2023 |
6.0.21 | 0 | 8/8/2023 |
6.0.20 | 1 | 11/13/2024 |
6.0.19 | 0 | 6/22/2023 |
6.0.18 | 1 | 11/13/2024 |
6.0.16 | 0 | 4/11/2023 |
6.0.15 | 1 | 11/13/2024 |
6.0.14 | 1 | 11/13/2024 |
6.0.13 | 0 | 1/10/2023 |
6.0.12 | 0 | 12/13/2022 |
6.0.11 | 0 | 11/7/2022 |
6.0.10 | 1 | 11/13/2024 |
6.0.9 | 1 | 11/13/2024 |
6.0.8 | 0 | 8/9/2022 |
6.0.7 | 0 | 7/12/2022 |
6.0.6 | 0 | 6/14/2022 |
6.0.5 | 0 | 5/10/2022 |
6.0.4 | 1 | 11/13/2024 |
6.0.3 | 0 | 3/8/2022 |
6.0.2 | 1 | 11/13/2024 |
6.0.1 | 0 | 12/14/2021 |
6.0.0 | 0 | 11/8/2021 |
6.0.0-rc.2.21480.10 | 0 | 10/12/2021 |
6.0.0-rc.1.21452.15 | 1 | 11/13/2024 |
6.0.0-preview.7.21378.6 | 1 | 11/13/2024 |
6.0.0-preview.6.21355.2 | 1 | 11/13/2024 |
6.0.0-preview.5.21301.17 | 0 | 6/15/2021 |
6.0.0-preview.4.21253.5 | 0 | 5/24/2021 |
6.0.0-preview.3.21201.13 | 1 | 11/13/2024 |
6.0.0-preview.2.21154.6 | 0 | 3/11/2021 |
6.0.0-preview.1.21103.6 | 0 | 2/12/2021 |
5.0.17 | 1 | 11/13/2024 |
5.0.16 | 0 | 4/11/2022 |
5.0.15 | 0 | 3/8/2022 |
5.0.14 | 1 | 11/13/2024 |
5.0.13 | 0 | 12/14/2021 |
5.0.12 | 0 | 11/7/2021 |
5.0.11 | 0 | 10/12/2021 |
5.0.10 | 0 | 9/14/2021 |
5.0.9 | 1 | 11/13/2024 |
5.0.8 | 0 | 7/13/2021 |
5.0.7 | 1 | 11/13/2024 |
5.0.6 | 0 | 5/11/2021 |
5.0.5 | 0 | 4/6/2021 |
5.0.4 | 0 | 3/9/2021 |
5.0.3 | 0 | 2/9/2021 |
5.0.2 | 0 | 1/12/2021 |
5.0.1 | 0 | 12/8/2020 |
5.0.0 | 1 | 11/13/2024 |
5.0.0-rc.2.20475.17 | 1 | 11/13/2024 |
5.0.0-rc.1.20451.17 | 1 | 11/13/2024 |
5.0.0-preview.8.20414.8 | 1 | 11/13/2024 |
5.0.0-preview.7.20365.19 | 0 | 7/21/2020 |
5.0.0-preview.6.20312.15 | 1 | 11/13/2024 |
5.0.0-preview.5.20279.2 | 0 | 6/10/2020 |
5.0.0-preview.4.20257.10 | 1 | 11/13/2024 |
5.0.0-preview.3.20215.14 | 0 | 4/23/2020 |
5.0.0-preview.2.20167.3 | 1 | 11/13/2024 |
5.0.0-preview.1.20124.5 | 0 | 3/16/2020 |
3.1.32 | 0 | 12/13/2022 |
3.1.31 | 1 | 11/13/2024 |
3.1.30 | 0 | 10/11/2022 |
3.1.29 | 1 | 11/13/2024 |
3.1.28 | 0 | 8/9/2022 |
3.1.27 | 1 | 11/13/2024 |
3.1.26 | 1 | 11/13/2024 |
3.1.25 | 0 | 5/10/2022 |
3.1.24 | 1 | 11/13/2024 |
3.1.23 | 1 | 11/13/2024 |
3.1.22 | 1 | 11/13/2024 |
3.1.21 | 0 | 11/7/2021 |
3.1.20 | 0 | 10/11/2021 |
3.1.19 | 0 | 9/14/2021 |
3.1.18 | 0 | 8/10/2021 |
3.1.17 | 0 | 7/13/2021 |
3.1.16 | 1 | 11/13/2024 |
3.1.15 | 0 | 5/11/2021 |
3.1.14 | 1 | 11/13/2024 |
3.1.13 | 0 | 3/9/2021 |
3.1.12 | 0 | 2/9/2021 |
3.1.11 | 0 | 1/12/2021 |
3.1.10 | 0 | 11/9/2020 |
3.1.9 | 1 | 11/13/2024 |
3.1.8 | 1 | 11/13/2024 |
3.1.7 | 0 | 8/11/2020 |
3.1.6 | 0 | 7/14/2020 |
3.1.5 | 0 | 6/9/2020 |
3.1.4 | 0 | 5/12/2020 |
3.1.3 | 1 | 11/13/2024 |
3.1.2 | 0 | 2/18/2020 |
3.1.1 | 1 | 11/13/2024 |
3.1.0 | 0 | 12/3/2019 |
3.1.0-preview3.19555.2 | 0 | 11/13/2019 |
3.1.0-preview2.19528.8 | 1 | 11/13/2024 |
3.1.0-preview1.19508.20 | 1 | 11/13/2024 |
3.0.3 | 0 | 2/18/2020 |
3.0.2 | 0 | 1/14/2020 |
3.0.0 | 0 | 9/23/2019 |
3.0.0-rc1.19457.4 | 1 | 11/13/2024 |
3.0.0-preview9.19424.4 | 0 | 9/4/2019 |
3.0.0-preview8.19405.7 | 1 | 11/13/2024 |
3.0.0-preview7.19365.7 | 0 | 7/23/2019 |
3.0.0-preview6.19307.2 | 0 | 6/12/2019 |
3.0.0-preview5-19227-01 | 0 | 5/6/2019 |
3.0.0-preview4-19216-03 | 1 | 11/13/2024 |
3.0.0-preview3-19153-02 | 0 | 3/6/2019 |
3.0.0-preview-19075-0444 | 0 | 1/29/2019 |
3.0.0-preview-18579-0056 | 1 | 11/13/2024 |
2.3.0 | 1 | 1/19/2025 |
2.2.0 | 1 | 11/10/2024 |
2.2.0-preview3-35497 | 0 | 10/17/2018 |
2.2.0-preview2-35157 | 1 | 11/13/2024 |
2.2.0-preview1-35029 | 0 | 8/22/2018 |
2.1.1 | 0 | 6/18/2018 |
2.1.0 | 0 | 5/29/2018 |
2.1.0-rc1-final | 0 | 5/6/2018 |
2.1.0-preview2-final | 1 | 11/13/2024 |
2.1.0-preview1-final | 0 | 2/26/2018 |
2.0.0 | 0 | 8/11/2017 |
2.0.0-preview2-final | 0 | 6/27/2017 |
2.0.0-preview1-final | 0 | 5/10/2017 |
1.1.2 | 1 | 11/13/2024 |
1.1.1 | 1 | 11/13/2024 |
1.1.0 | 0 | 11/16/2016 |
1.1.0-preview1-final | 0 | 10/24/2016 |
1.0.0 | 0 | 6/27/2016 |
1.0.0-rc2-final | 1 | 11/10/2024 |