У меня есть .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
- Проблема 2
Возможно, я где-то пропустил дополнительную конфигурацию, чтобы заставить ее работать, или мне нужно вернуться к пакету Newtonsoft, я просто не уверен.