Как установить настройки сериализатора json в asp.net core 3? - PullRequest
5 голосов
/ 15 октября 2019

Параметры сериализатора json для устаревших основных приложений asp.net были установлены путем добавления AddMvc().AddJsonOptions(), но я не использую AddMvc() в asp.net core 3. Итак, как я могу установить глобальные параметры сериализации JSON?

Ответы [ 2 ]

5 голосов
/ 15 октября 2019

Вызов AddMvc возвращает реализацию IMvcBuilder, которая имеет соответствующий метод расширения AddJsonOptions. Как подтверждается в комментариях, вы используете вызов AddControllers в новом стиле, который также возвращает реализацию IMvcBuilder. Вы можете связать это по цепочке так же, как и по цепочке AddMvc:

services.AddControllers()
    .AddJsonOptions(options =>
    {
        // ...
    });

Обратите внимание, что options здесь больше не для параметров JSON.NET, а для нового подхода System.Text.Json. Если вам нужна некоторая гибкость JSON.NET, вы можете вернуться к этому, как описано в ответе tymtam

4 голосов
/ 15 октября 2019

AddControllers

Это по-прежнему MVC, и для него требуется пакет nuget Microsoft.AspNetCore.Mvc.NewtonsoftJson, но вы сказали, что используете AddContollers.

С Добавить Newtonsoft.Jsonподдержка формата JSON

services.AddControllers().AddNewtonsoftJson(options =>
{
    // Use the default property (Pascal) casing
    options.SerializerSettings.ContractResolver = new DefaultContractResolver();

    // Configure a custom converter
    options.SerializerOptions.Converters.Add(new MyCustomJsonConverter());
});

Другая опция

JsonConvert.DefaultSettings = () => new JsonSerializerSettings (...)

JsonConvert.DefaultSettings Свойство

Получает или задает функцию, которая создает JsonSerializerSettings по умолчанию. Настройки по умолчанию автоматически используются методами сериализации в JsonConvert, а также ToObject () и FromObject (Object) в JToken. Для сериализации без использования настроек по умолчанию создайте JsonSerializer с Create ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...