作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有一个枚举:
public enum Action {
Remove=1,
Add=2
}
还有一个类(class):
[DataContract]
public class Container {
[DataMember]
public Action Action {get; set;}
}
当将 Container 的实例序列化为 json 时,我得到:{Action:1}
(如果 Action 是 Remove)。
我想得到:{Action:Remove}
(而不是 int 我需要 ToString 形式的枚举)
我可以在不向类(class)添加其他成员的情况下这样做吗?
最佳答案
使用 Json.Net ,您可以将自定义的 StringEnumConverter
定义为
public class MyStringEnumConverter : Newtonsoft.Json.Converters.StringEnumConverter
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
if (value is Action)
{
writer.WriteValue(Enum.GetName(typeof(Action),(Action)value));// or something else
return;
}
base.WriteJson(writer, value, serializer);
}
}
并序列化为
string json=JsonConvert.SerializeObject(container,new MyStringEnumConverter());
关于c# - 将枚举序列化为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9156820/
出于好奇,我尝试了一些原型(prototype)制作,但似乎只允许在第一个位置使用子例程的原型(prototype) &。 当我写作时 sub test (&$$) { do_somethin
我需要开发一个类似于 Android Play 商店应用程序或类似 this app 的应用程序.我阅读了很多教程,发现几乎每个教程都有与 this one 类似的例子。 . 我已经开始使用我的应用程
考虑一个表示“事件之间的时间”的列: (5, 40, 3, 6, 0, 9, 0, 4, 5, 18, 2, 4, 3, 2) 我想将这些分组到 30 个桶中,但桶会重置。期望的结果: (0, 1,
我是一名优秀的程序员,十分优秀!