Какой параметр я должен изменить, чтобы получить значение int для перечисления вместо его строкового представления при сериализации?
Какой параметр я должен изменить, чтобы получить значение свойства перечисления вместо его строкового представления при сериализации объекта? У меня есть следующий класс.
public class ProductModel
{
public long ProductId { get; set; }
public int ContainerType { get; set; }
public SolidForm SolidForm { get; set; }
}
(например) СЕЙЧАС ---> мой JSON =
{ "ProductId" : 22222,
"ContainerType" : 1111,
"SolidForm" : "Solid"
}
но мне нужно это после сериализации. (не перечислять как строку)
{ "ProductId" : 22222,
"ContainerType" : 1111,
"SolidForm" : 1
}
Я хочу, чтобы все перечисления в моем объекте преобразовывались в int.
это мои настройки сериализации Json
JsonSerializerSettings = new JsonSerializerSettings
{
DateFormatHandling = DateFormatHandling.MicrosoftDateFormat,
Error = delegate (object sender, ErrorEventArgs args)
{
args.ErrorContext.Handled = true;
}
}
1 ответ
По умолчанию в Newtonsoft.Json сериализуются перечисления как int. Предполагая, что вы имеете в виду Newtonsoft.Json.
Ваш enum украшен атрибутом [JsonConverter(typeof(StringEnumConverter))]
?