Добавляйте параметры при переходе с NetCore 2 Newtonsoft JSON на новый JSON API в NetCore 3 - PullRequest
0 голосов
/ 29 января 2020

Я недавно обновил свой проект Entity Framework Core с Do tNet Core 2.2 до 3.1.

Я использую newtonsoft json, но мне интересно, нужны ли мне эти две строки, которые вызывают ошибки. Вот эти две строки:

        services.AddMvc()
                .AddJsonOptions(
                    options =>
                    {
                        options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
                        options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
                    }); 

И вот ошибка:

«JsonOptions» не содержит определения для «SerializerSettings» и не имеет доступного метода расширения «SerializerSettings» можно найти первый аргумент типа 'JsonOptions'

Есть ли в новой библиотеке Microsoft JSON что-нибудь, что могло бы игнорировать циклы ссылок и нулевые значения, как это делает Newtonsoft JSON?

1 Ответ

1 голос
/ 30 января 2020

Это известное ограничение System.Text.Json, и эта функция может быть рассмотрена в. net 5, который намечен на ноябрь 2020 года:

Ссылка: https://github.com/dotnet/corefx/issues/38579 и https://github.com/dotnet/corefx/issues/41002

В настоящее время обходной путь должен использовать вместо него Newtonsoft JSON. Чтобы использовать Newtonsoft.Json в проекте ASP. NET Core 3.0 MVC:

  • Установите пакет Microsoft.AspNetCore. Mvc .Newtonsoft Json.
  • Обновление Startup.ConfigureServices для вызова AddNewtonsoftJson и установка настроек:

    services.AddMvc()
    .AddNewtonsoftJson(options => {
            options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
            options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
        });
    
...