Под капотом enum
- это просто набор именованных констант, базовый тип которых является целым числом .Десериализатор json знает, как преобразовать его целочисленное значение в значение enum
.
Когда вы спрашиваете:
Как Json может отобразить его в виде красных, зеленых или желтых значений в списке.
Я предполагаю, что вы хотитеВаш массив "FD
" содержит массив объектов, каждый из которых имеет ключ CodeStatus
со значением string
вместо значения int
?Например, вы хотели бы видеть это:
"FD": [
{
"Id": 416308,
"Name": "Head Office ",
"CodeStatus": "Red",
}
]
Правильно?
Если это так, вы можете добавить к этому классу второе свойство, которое является string
версией CodeStatus
перечисление.И поскольку это «производное» свойство, вы можете использовать либо « Expression Bodied Function » (она же жирная стрелка), либо свойство только для чтения (оно же свойство только с get
тер).Итак, что-то вроде:
public class Status
{
public string CodeStatus => CodeStatusEnum.ToString();
//Optionally add
//[JsonIgnore] // to exclude it from Json Serialization
public Codes CodeStatusEnum { get; set; }
//Could also be
//public string CodeStatus { get { return CodeStatusEnum.ToString(); } }
public enum Codes
{
Unknown = 0,
Green=1,
Yellow=2,
Red =3
}
}
Наконец, если вы не хотите, чтобы не-строковое свойство вообще отображалось в сериализованном JSON, вы можете добавить атрибут [JsonIgnore]
к этому.