c# - 强制框架使用枚举实体名称而不是其值

标签 c# asp.net-mvc rest asp.net-web-api

<分区>

我创建了一个 ASP.NET MVC 4 Web 应用程序。在这个应用程序中,我实现了几个 rest web 服务,我的问题来了:是否可以强制对象序列化使用枚举实体名称而不是它们的值?

这是我的枚举:

    public enum ReturnCode { OK, InvalidParameter }

这是我得到的:

{
   "returnCode": 0,
   "data": null
}

但这就是我想要的:

{
   "returnCode": OK,
   "data": null
}

有什么办法可以实现吗?

最佳答案

您可以使用 JsonConverter。

有一个原生的 JSON.Net StringEnumConverter这个问题提到JSON serialization of enum as string

要么注释你的属性:

[JsonConverter(typeof(StringEnumConverter))]
public enum ReturnCode { OK, InvalidParameter }

或使用 WebApi Json.NET custom date handling 中的配置示例在全局序列化器设置中注册。

关于c# - 强制框架使用枚举实体名称而不是其值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14505183/

相关文章:

asp.net-mvc - MVC4 TextBoxFor 覆盖模型属性

c# - 将 Umbraco 7 集成到现有的 MVC 4 Web 应用程序中

c# - 处理对象之间的交互

c# - 是否可以使用 C# 对 FTP 中的文件夹进行 ZIP 压缩?

asp.net-mvc - MVC DropDownListFor 与 ViewBag 不将值传递给 Controller

rest - 如何在 golang 中使用 julienschmidt/httprouter 传递两个或多个参数?

javascript - 如何使用express和handlebar或其他模板引擎在node.js中渲染rest api调用?

java - 未能关闭 Spring Boot 安全配置

c# - 紧凑的框架套接字文档打印

javascript - 无法将值从 C# 传递到 amcharts JavaScript 函数