我是新来的。在我的模型课中,我有
public class Status
{
public Codes CodeStatus { get; set; }
public enum Codes
{
Unknown = 0,
Green=1,
Yellow=2,
Red =3
}
}
现在,当我像这样在控制器中使用它时
int dbStatus = 3;
Status oStatus = new Status();
oStatus.CodeStatus = (Status.Codes)dbStatus ;
List<Status> ListStatus = new List<Status>();
ListStatus.Add(oStatus);
return ListStatus.ToList();
在快速监视下调试oStatus.CodeStatus
的值时,它显示为“红色”
但是当JSON在邮递员中呈现时,该值以整数而不是“红色”显示。 Json如何以列表中的红色,绿色或黄色值呈现它。
JSON看起来像这样
"FD": [
{
"Id": 416308,
"Name": "Head Office ",
"CodeStatus": 3,
}
]
答案 0 :(得分:1)
在幕后,enum
只是set of named constants whose underlying type is an integer。 json解串器知道如何将其整数值转换为其enum
值。
当您问:
Json如何以列表中的红色,绿色或黄色值呈现它。
我假设您希望您的“ FD
”数组包含一个对象数组,每个对象都具有一个CodeStatus
值而不是{{1 }}值?例如,您想看到以下内容:
string
正确吗?
如果是这样,您可以向该类添加第二个属性,该属性是int
枚举的"FD": [
{
"Id": 416308,
"Name": "Head Office ",
"CodeStatus": "Red",
}
]
版本。并且由于它是“派生的”属性,因此可以使用“ Expression Bodied Function”(又称粗箭头)或read-only property(也就是仅具有string
ter的属性)。像这样:
CodeStatus
最后,如果您根本不想在序列化的JSON中显示非字符串属性,则可以向其中添加[JsonIgnore]
attribute。