我对Json.NET如何序列化/反序列化枚举感到困惑。
我在JSON Schema中有这个字段:
"MyEnumValue": {
"type": "string",
"enum": ["D", "F", "R"]
},
和这个C#代码:
[JsonProperty(PropertyName = "MyEnumValue", Required = Required.Always)]
public MyEnumValue MyEnumValue { get; set; }
public enum MyEnumValue
{
D, F, R
}
当我使用此功能时:
JsonConvert.SerializeObject
创建的Json文本包含:
"MyEnumValue":82
因此,JSON.NET反序列化一个枚举值,该值将char作为整数,这是char的ASCII值。
我的问题是: *为什么我不能通过序列化来获取字符?
答案 0 :(得分:6)
如果您需要[en]将枚举序列化为字符串,请将其添加到属性:
[JsonProperty(PropertyName = "Enum", Required = Required.Always)]
[JsonConverter(typeof(StringEnumConverter))]
public MyEnumValue MyEnumValue { get; set; }