Как использовать Newtonsoft.Json по умолчанию в Asp.net Core Web Api?
Я новичок в ASP.Net Web Api Core. Я использовал ASP.Net MVC в течение последних нескольких лет, и я всегда писал ActionFilter
и использовал JSON.Net
для Serializing
данных в JSON
. Таким образом, я заменил Microsoft JavaScript Serializer
(который медленнее, чем JSON.Net
) с JSON.Net
(как утверждается, на 400% быстрее).
Как сделать все это в ASP.Net Web Api Core? Где изменить default formattor?
Примечание. Пожалуйста, не стесняйтесь спрашивать, есть ли у вас какие-либо вопросы.
Спасибо
Ответы
Ответ 1
ASP.NET Core уже использует JSON.NET, так как JavaScriptSerializer
не реализован/портирован на .NET Core.
Microsoft.AspNetCore.Mvc
зависит от Microsoft.AspNetCore.Formatter.Json
который зависит от Microsoft.AspNetCore.JsonPatch
, который зависит от Newtonsoft.Json
(см. Источник).
Обновить
Это верно только для ASP.NET Core 1.0 до 2.2. ASP.NET Core 3.0 устраняет зависимость от JSON.NET и использует собственный сериализатор JSON.
Ответ 2
Вот фрагмент кода для настройки параметров основного приложения .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;
});
}