【发布时间】: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 小时”
【问题讨论】:
-
@StenPetrov 我使用 StringEnumConverter 反序列化和序列化枚举。但它忽略了枚举参数的 JsonPropertyAttribute。没有关于它的文档。为什么它不检查枚举参数的属性:(james.newtonking.com/projects/json/help/index.html?topic=html/…
-
不是类似于“PropertyName”吗?
标签: c# json serialization deserialization json.net