Ключевые слова веб-API .NET Core 3.0 для CamelCase - PullRequest
1 голос
/ 21 октября 2019

У меня есть .NET Core Web Api, который я недавно перенес с версии 2.2 на версию 3.0. У меня есть маршрут / метод в одном из моих контроллеров, который возвращает словарь. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что когда ответ возвращается из API, словарные ключи находятся в PascalCase, а не в CamelCase, как это было до обновления.

До моего обновления до .NET Core 3.0 у меня при запуске был следующий код

services.AddMvcCore()
   .AddJsonOptions(opts => 
   {
       opts.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
   });

Теперь, после удаления пакета Newtonsoft Json.Net я удалил вышеуказанный блокзакодируйте его и замените следующим:

services.AddControllers(config =>
{
   // Some configuration in here
})
.AddJsonOptions(options => options.JsonSerializerOptions.DictionaryKeyPolicy = JsonNamingPolicy.CamelCase)

По какой-то причине я все еще возвращаю ключи словаря как регистр Паскаля, когда хочу, чтобы ключи словаря были в CamelCase. Я попробовал несколько других способов безрезультатно. Я прочитал документацию по миграции и не смог найти никакой информации по этому конкретному вопросу. Я также столкнулся с несколькими проблемами на GitHub, которые связаны, но не помогли

  1. Проблема 1
  2. Проблема 2

Возможно, я где-то пропустил дополнительную конфигурацию, чтобы заставить ее работать, или мне нужно вернуться к пакету Newtonsoft, я просто не уверен.

...