我目前有一个班级发言(看起来像这样)

public class foo
{
    public MyEnumType Result { get; set; };
}


目前,当我这样做

foo a = new foo();
string str = JsonConvert.SerializeObject(a);


结果以int类型显示。有没有办法让我把它作为字符串类型?通过告诉它执行MyEnumTypeInstance.toString();

最佳答案

JSON.Net有一个内置的转换器StringEnumConverter,您只需向要反序列化的属性添加一个属性,例如:

[JsonConverter(typeof(StringEnumConverter))]
public MyEnumType Result { get; set; }


或在序列化期间指定转换器:

string str = JsonConvert.SerializeObject(a, new StringEnumConverter());

关于c# - 如何告诉NewtonSoft.Json.JsonConvert将枚举序列化为字符串而不是int,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58045417/

10-10 20:06