【发布时间】:2015-10-22 10:33:26
【问题描述】:
我的问题很简单,但比其他与将枚举类型序列化为字符串相关的问题更具体一些。
考虑以下代码:
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
public enum MyEnum
{
TypeOne,
TypeTwo,
TypeThree
}
public class Foo
{
[JsonConverter(typeof(StringEnumConverter))]
public MyEnum Types { get; set; }
}
当 Web API 控制器发送序列化的 Foo 对象时,它们可能看起来像这样:
{
"Type" : "TypeTwo"
}
我的问题:是否可以将序列化的枚举作为每个大写字母前带有空格的字符串发送?这样的解决方案会生成这样的 JSON:
{
"Type" : "Type Two"
}
如果需要任何其他信息来解决我的问题,请告诉我。谢谢!
编辑:
最好将枚举仅转换为带空格的字符串,同时将它们序列化为 JSON。我想在后端使用MyEnum.ToString() 时排除空格。
【问题讨论】:
-
添加一个 EnumMemberAttribute
[EnumMember("Type Two")]有什么作用吗? github 上 StringEnumConverter 的源代码似乎利用了它。 -
我不确定,但您认为使用该属性会对每个
MyEnum.ToString()方法产生影响吗?
标签: c# json serialization asp.net-web-api enums