Вы случайно попали в функцию Newtonsoft (не очень хорошо задокументировано). Более подробное описание можно найти в этом
вопрос .
Вкратце: у вас есть свойство с именем MyPropertyName
и свойство с именем MyPropertyNameSpecified
, то есть Specified
, добавленное к имени другого свойства, по умолчанию для Newtonsoft поведение не заключается в сериализации MyPropertyName
, когда MyPropertyNameSpecified
равно false
.
Решением вашей проблемы будет либо переименование некоторых свойств, либо использование этих настроек:
new JsonSerializerSettings
{
ContractResolver = new DefaultContractResolver { IgnoreIsSpecifiedMembers = true }
};
Для редактирования параметров сериализатора JSON в проекте .NET Core укажите параметры в методе ConfigureServies
:
services.AddMvc()
.AddJsonOptions(
options =>
{
options.SerializerSettings.ContractResolver =
new DefaultContractResolver { IgnoreIsSpecifiedMembers = true };
});