【发布时间】:2014-12-11 01:35:31
【问题描述】:
我有以下枚举
public enum PermissionType
{
[JsonProperty(PropertyName = "can_fly")]
PermissionToFly,
[JsonProperty(PropertyName = "can_swim")]
PermissionToSwim
};
以及具有此属性的类
[JsonProperty(PropertyName = "permissions", ItemConverterType = typeof(StringEnumConverter))]
public IList<PermissionType> PermissionKeynames { get; set; }`
我想将枚举列表序列化为字符串列表,并且该序列化列表使用PropertyName 中指定的字符串(例如“can_swim”)而不是属性的实际名称“PermissionToSwim”。但是,每当我调用 JsonConvert.SerializeObject 时,我都会得到 p>
"permission_keynames":["PermissionToFly","PermissionToSwim"]
而不是我想要的
"permission_keynames":["can_fly","can_swim"]
我想保留短语“PermissionToSwim”以在我的代码中使用,序列化为另一个单词。知道如何实现这一目标吗?我的直觉说注释是罪魁祸首,但我一直找不到正确的。
【问题讨论】:
-
如果将来有人遇到相反的问题(反序列化为具有不同命名值的枚举),请查看this question。
标签: c# serialization enums json.net