【发布时间】:2017-08-25 20:56:40
【问题描述】:
在 .NET 应用程序中,我有一组值存储为 [Flags] enum。我想将这些序列化为 json,但我不想让结果为整数,而是为活动的标志获取一个字符串数组。
所以如果我有以下代码
[Flags]
public enum F
{
Val1 = 1,
Val2 = 2,
Val4 = 4,
Val8 = 8
}
public class C
{
public F Flags { get; set; }
}
string Serialize() {
return JsonConvert.SerializeObject(new C { Flags = F.Val1 | F.Val4 });
}
我希望Serialize() 方法返回:
"{ Flags: [ "Val1", "Val4" ] }"
代替:
"{ Flags: 5 }"
【问题讨论】:
-
你的意思是
JsonConvert.SerializeObject(new C { Flags = F.Val1 | F.Val4 });? -
{"Flags":"Val1, Val4"}可以接受吗? -
@MattJones 是的。固定
-
@DavidG 我们不希望。
-
您可能需要为您的特定枚举实现自定义
JsonConverter类。