Я установил JsonSerializer по умолчанию на Utf8Json - PullRequest
1 голос
/ 06 мая 2020

Использование c# 8 и .netcore 3.1.

Я читал ЗДЕСЬ , что Utf8 Json библиотечный процесс json сериализация и десериализация быстрее это Newtonsoft Json.

Недавно мы обновили код наших серверов с .netcore 2.2 до 3.1 в основном для повышения производительности. Таким образом, разумно, что мы также используем лучшую библиотеку сериализации.

Итак, мои вопросы:

  1. В Startup.cs есть это

    services.AddControllers().AddNewtonsoftJson(options =>
    {
        options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
    });
    

И я хочу, чтобы он использовал другую библиотеку, поэтому я обнаружил, что могу использовать .AddJsonOptions, но не могу понять, как установить сериализатор по умолчанию, даже после использования моих навыков google-fu.

Поскольку я использую [JsonProperty("<name>")] повсюду в моем коде, чтобы уменьшить размер строки json, нужно ли мне форматировать все для нового сериализатора или есть способ заставить его учитывать атрибут свойства? (атрибут Newtonsoft)

Спасибо.

1 Ответ

2 голосов
/ 07 мая 2020

@ Ori, вы можете использовать Utf8 json в проектах net core 3.1.

Используйте

[DataMember(Name = "RoleType")] public string Role_Type { get; set; }

вместо

[JsonProperty("<name>")]

Чтобы использовать средства форматирования Utf8 json в Asp . Net core, вам нужно добавить средства форматирования, как указано ниже.

    public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews()


    // Add Utf8Json formatters
    .AddMvcOptions(option =>
    {
        option.OutputFormatters.Clear();
        option.OutputFormatters.Add(new JsonOutputFormatter (StandardResolver.Default));
        option.InputFormatters.Clear();
        option.InputFormatters.Add(new JsonInputFormatter ());
    });
}

Вы также можете обратиться к приведенной ниже ссылке для средств форматирования. https://github.com/neuecc/Utf8Json/blob/master/src/Utf8Json.AspNetCoreMvcFormatter/Formatter.cs

Я использую utf8 json, и он отлично работает для нас.

...