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 小时”
最佳答案
我解决了问题。
[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
.
关于c# - 在枚举参数中使用短划线 (-) 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15069588/