Home >Backend Development >C++ >What Happened to `AddJsonOptions` in .NET Core 3.0 and How Do I Configure JSON Serialization Now?
Removal of AddJsonOptions
method and JSON serialization configuration method in .NET Core 3.0
After upgrading from .NET Core 2.0 to 3.0, developers found that the IMvcBuilder
extension method was missing from the AddJsonOptions
interface. This article explains the reasons for removing this method and describes the recommended alternative configuration mechanism.
Changes between Json.NET and ASP.NET Core 3.0
In the past, ASP.NET Core used Json.NET as the JSON serialization library by default. However, in version 3.0, the framework no longer uses Json.NET by default and instead introduces a new, performance-optimized JSON API.
New configuration mechanism
To continue using Json.NET in .NET Core 3.0, developers need to add a reference to the Microsoft.AspNetCore.Mvc.NewtonsoftJson
NuGet package. Then, in the Startup
class, modify the MVC configuration as follows:
<code class="language-csharp">services.AddControllers() .AddNewtonsoftJson();</code>
This configuration will enable the MVC controller to use Json.NET. The AddNewtonsoftJson
method provides overloads that allow developers to define custom Json.NET options, similar to the AddJsonOptions
method in earlier versions. For example:
<code class="language-csharp">services.AddControllers() .AddNewtonsoftJson(options => { options.SerializerSettings.ContractResolver = new DefaultContractResolver(); });</code>
To summarize, although the AddJsonOptions
method is no longer available in .NET Core 3.0, developers can easily reintroduce Json.NET by installing the NuGet package and updating the MVC configuration in the Startup
class. This ensures compatibility with older projects and access to the full functionality of Json.NET.
The above is the detailed content of What Happened to `AddJsonOptions` in .NET Core 3.0 and How Do I Configure JSON Serialization Now?. For more information, please follow other related articles on the PHP Chinese website!