从列表

时间:2019-02-28 22:36:50

标签: c# json list enums postman

我是新来的。在我的模型课中,我有

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,

         }
      ]

1 个答案:

答案 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