ASP. NET Core 3.1 игнорирует System.Text. Json .JsonPropertyName при возврате тела ответа - PullRequest
0 голосов
/ 14 февраля 2020

Я недавно изменил свое ASP. NET Базовое приложение на цель 3.1 с 2.2. Я также перешел с использования Newtonsoft для сериализации JSON на System.Text. Json. В процессе я изменил ряд свойств класса ответа, чтобы использовать JsonPropertyNameAttribute (из Newtonsoft JsonPropertyAttribute).

Однако я заметил, что приложение игнорирует атрибут JsonPropertyNameAttribute и сериализует имя свойства вместо верблюда.

Например:

[JsonPropertyName("handsets")]
public IEnumerable<GetHandsetResponse> AllHandsets { get; set; }

Поле объекта ответа выводится как allHandsets в ответе, а не handsets, как указано в JsonPropertyName.

Я предполагаю, что мне не хватает чего-то в Startup.cs приложения, чтобы сказать ему использовать System .Текст. Json однако я понятия не имею, что. Чего мне не хватает?

1 Ответ

1 голос
/ 17 февраля 2020

Похоже, что в глубине общего кода, вызываемого из Startup.cs - ConfigureServices () приложения, есть вызов .AddNewtonsoftJson() (для возвращенного типа IMvcBuilder). Удаление этого вызова метода появляется для правильного возврата приложения к использованию System.Text. Json serializer.

...