Nerdbank.Json.AspNetCoreMvcFormatter
0.2.15-alpha
Prefix Reserved
dotnet add package Nerdbank.Json.AspNetCoreMvcFormatter --version 0.2.15-alpha
NuGet\Install-Package Nerdbank.Json.AspNetCoreMvcFormatter -Version 0.2.15-alpha
<PackageReference Include="Nerdbank.Json.AspNetCoreMvcFormatter" Version="0.2.15-alpha" />
<PackageVersion Include="Nerdbank.Json.AspNetCoreMvcFormatter" Version="0.2.15-alpha" />
<PackageReference Include="Nerdbank.Json.AspNetCoreMvcFormatter" />
paket add Nerdbank.Json.AspNetCoreMvcFormatter --version 0.2.15-alpha
#r "nuget: Nerdbank.Json.AspNetCoreMvcFormatter, 0.2.15-alpha"
#:package Nerdbank.Json.AspNetCoreMvcFormatter@0.2.15-alpha
#addin nuget:?package=Nerdbank.Json.AspNetCoreMvcFormatter&version=0.2.15-alpha&prerelease
#tool nuget:?package=Nerdbank.Json.AspNetCoreMvcFormatter&version=0.2.15-alpha&prerelease
Nerdbank.Json.AspNetCoreMvcFormatter
ASP.NET Core MVC input and output formatters backed by Nerdbank.Json, enabling source-generated JSON in controller-based Web APIs, including apps using the minimal hosting model. This package supplies MVC formatters, not Minimal API JSON integration.
Unlike the built-in System.Text.Json formatters, these formatters:
- use an explicitly supplied, source-generated
ITypeShapeProvider— no reflection and no runtime type discovery; - stream request and response bodies incrementally through Nerdbank.Json's
PipeReader/PipeWriterAPIs; - are trimming- and NativeAOT-safe.
Usage
Call AddNerdbankJsonFormatters(serializer, shapeProvider, configure) on the builder returned by AddControllers or AddMvcCore.
The extension methods are in Microsoft.Extensions.DependencyInjection.
Supply a source-generated ITypeShapeProvider that describes every type the formatters can read or write.
See the compilable MVC sample and the formatter guide.
For direct registration, JsonInputFormatter and JsonOutputFormatter are in the Nerdbank.Json.AspNetCoreMvcFormatter namespace.
Their constructors accept the provider first and the serializer second.
Provider-only constructors use a default serializer.
By default the Nerdbank.Json formatters are inserted before the built-in System.Text.Json formatters (so they win
content negotiation for application/json and +json media types) but do not remove them.
Set ReplaceSystemTextJsonFormatters in the registration callback to remove the built-in JSON formatters.
Set InsertFirst to false to append rather than prepend the Nerdbank.Json formatters.
Both options are properties of NerdbankJsonFormatterOptions.
During content negotiation, the formatters decline model types the provider cannot describe, allowing other registered formatters to handle types such as ProblemDetails.
If a formatter is invoked directly for an unsupported type, it throws MissingTypeShapeException rather than silently binding null or using reflection.
When replacing the built-in JSON formatters, include all response and error types in the provider.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.VisualStudio.Validation (>= 17.13.22)
- Nerdbank.Json (>= 0.2.15-alpha)
- Nerdbank.MessagePack (>= 1.5.47-alpha)
- PolyType (>= 2.0.0-rc.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.2.15-alpha | 60 | 11/7/2026 |
| 0.2.7-alpha | 76 | 10/28/2026 |
| 0.2.1-alpha | 66 | 10/22/2026 |
| 0.1.1092-alpha | 79 | 10/17/2026 |
| 0.1.1066-alpha | 78 | 9/30/2026 |
| 0.1.1057-alpha | 66 | 9/29/2026 |
| 0.1.1050-alpha | 74 | 9/26/2026 |
| 0.1.1041-alpha | 74 | 9/25/2026 |
| 0.1.1010-alpha | 88 | 9/1/2026 |