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