【问题标题】:Use Dash (-) Character in enum parameter在枚举参数中使用破折号 (-) 字符
【发布时间】:2013-02-10 18:01:47
【问题描述】:
public enum TimeFormat
{ 
        @12-hour,
        @24-hour
}

嗨,

我使用 newtonsoft 反序列化器将 json 字符串反序列化为对象。

JsonDeserializer 检查枚举参数名称。如果它与json字符串相同。它将字符串转换为枚举。

我可以在枚举中使用破折号、减号 (-) 字符作为枚举参数吗?我尝试如上使用,但我无法编译项目。

然后我尝试了这个。

[JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]
public enum TimeFormat
{
    [JsonProperty("12-hour")]
    hour12,
    [JsonProperty("24-hour")]
    hour24,

}

反序列化程序无法反序列化 json 字符串。

错误:未找到请求的值“12 小时”

【问题讨论】:

标签: c# json serialization deserialization json.net


【解决方案1】:

我解决了问题。

[JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]    
public enum TimeFormat
{
    [System.Runtime.Serialization.EnumMember(Value = "12-hour")]
    hour12,
    [System.Runtime.Serialization.EnumMember(Value = "24-hour")]
    hour24,

}

StringEnumConverter 检查EnumMemberAttribute

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    • 2011-03-28
    • 1970-01-01
    • 2012-02-09
    • 2021-10-11
    • 1970-01-01
    相关资源
    最近更新 更多