C# IIS托管的WCF REST服务-JSON将枚举序列化为字符串
是否可以将枚举序列化为正确的字符串值或EnumMember属性指定的值而不是数字?JSON序列化似乎忽略了EnumMember属性的Value属性。如果我将WebMessageFormat更改为Xml,它可以正常工作,但我需要使用JSON 我有以下IIS托管的REST服务C# IIS托管的WCF REST服务-JSON将枚举序列化为字符串,c#,json,rest,wcf,enums,C#,Json,Rest,Wcf,Enums,是否可以将枚举序列化为正确的字符串值或EnumMember属性指定的值而不是数字?JSON序列化似乎忽略了EnumMember属性的Value属性。如果我将WebMessageFormat更改为Xml,它可以正常工作,但我需要使用JSON 我有以下IIS托管的REST服务 [OperationContract] [WebGet(ResponseFormat = WebMessageFormat.Json, UriTemplate = "test")] SomeObject Tes
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json,
UriTemplate = "test")]
SomeObject Test();
SomeObject:
[DataContract]
public class SomeObject
{
[DataMember]
public SomeEnum FooBar
{
get;
set;
}
}
SomeEnum:
[DataContract]
public enum SomeEnum
{
[EnumMember(Value = "FooValue")]
[Description("FooDescription")]
Foo,
[EnumMember(Value = "BarValue")]
[Description("BarDescription")]
Bar,
}
我得到的是:
{"FooBar":0}
我希望获得以下其中一项(最好是第一项,但任何一项都有效):
你需要参考
对属性使用StringEnumConverter属性,如下所示:
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
[JsonConverter(typeof(StringEnumConverter))]
public SomeEnum FooBar {get;set;}
有关更多详细信息,请参阅newtonsoft
希望这有帮助 您需要参考
对属性使用StringEnumConverter属性,如下所示:
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
[JsonConverter(typeof(StringEnumConverter))]
public SomeEnum FooBar {get;set;}
有关更多详细信息,请参阅newtonsoft
希望这有帮助 嘿!您是否能够使用下面建议的方法解决问题?如果没有,请更新详细信息,并可能更新解决方案?如果是的话,请你投票并/或将下面的回复标记为asnwer?嘿!您是否能够使用下面建议的方法解决问题?如果没有,请更新详细信息,并可能更新解决方案?如果是,请您在下面的回复中添加投票和/或标记为asnwer?