【发布时间】:2013-04-23 20:28:28
【问题描述】:
问题
假设我有一个枚举代表某事或其他:
public enum ResultState
{
Found,
Deleted,
NotFound
}
在我的序列化 json 中,我希望将这些值分别序列化为 "found"、"gone" 或 "not_found"。 (注意:这不是 camelCase,而是一个完全自定义的字符串!)
我正在使用 JSON.NET
迄今为止的故事
我的一切工作几乎正常 - 枚举通过 StringEnumConverter 全局转换为字符串,但是我无法终生了解如何实现与上述类似的目标。
我最初的想法是将JsonProperty(...) 属性应用于相关的枚举值,但这似乎不起作用!
可能的解决方案?
我能想到完成这项工作的唯一方法是编写我自己的 JsonConverter 继承自 StringEnumConverter,但需要一些额外的魔法来处理我要创建的新 JsonName 属性。
正如你想象的那样,我不喜欢这个想法。
我想知道你们这些优秀的人是否可以提出一个更简单的替代方案?
【问题讨论】:
-
创建一个新的转换器子类非常容易。你可能会在你问这个问题的时候做到这一点:)
-
您可能是对的,但我想要一种更具声明性的方法。原来
EnumMemberAttribute一直盯着我看。 掌心
标签: c# serialization json.net