如何在Asp.net Core Web Api中使用Newtonsoft.Json作为默认值?

问题描述 投票:18回答:2

我是ASP.Net Web Api Core的新手。我过去几年一直在使用ASP.Net MVC,我总是编写一个ActionFilter并使用JSON.NetSerializing数据导入JSON。所以,通过这种方式,我用JavaScript Serializer取代了微软的JSON.Net(比JSON.Net慢)(声称速度提高了400%)。

如何在ASP.Net Web Api Core中完成所有这些操作?在哪里更改默认格式化程序?

注意:如果您有任何疑问,请随时询问。

谢谢

json serialization asp.net-web-api asp.net-core json.net
2个回答
27
投票

ASP.NET Core已经使用JSON.NET,因为JavaScriptSerializer未实现/移植到.NET Core。

Microsoft.AspNetCore.Mvc依赖于Microsoft.AspNetCore.Formatter.Json,这取决于Microsoft.AspNetCore.JsonPatch,这取决于Newtonsoft.Json(见source)。

Update

这仅适用于ASP.NET Core 1.0到2.2。 ASP.NET Core 3.0消除了对JSON.NET的依赖,并使用它自己的JSON序列化程序。


5
投票

这是一个代码片段,用于调整.net核心应用程序的设置

public void ConfigureServices(IServiceCollection services)
{
    services
        .AddMvc()
        .AddJsonOptions(options => {
            // send back a ISO date
            var settings = options.SerializerSettings;
            settings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;
            // dont mess with case of properties
            var resolver = options.SerializerSettings.ContractResolver as DefaultContractResolver;
            resolver.NamingStrategy = null;
        });
}
© www.soinside.com 2019 - 2024. All rights reserved.