【发布时间】:2016-04-12 17:46:48
【问题描述】:
我正在使用 Json.NET 序列化具有枚举的 IEnumerable 和 DateTime 的对象。是这样的:
class Chart
{
// ...
public IEnumerable<int> YAxis { get; set; }
public IEnumerable<State> Data { get; set; }
public IEnumerable<DateTime> XAxis { get; set; }
}
但我需要一个自定义的JsonConverter 来使枚举序列化为字符串并更改DateTime 字符串格式。
我已经尝试使用JsonConverter 提到的here 属性作为枚举和自定义IsoDateTimeConverter 就像here 一样:
[JsonConverter(typeof(StringEnumConverter))]
public IEnumerable<State> Data { get; set; }
[JsonConverter(typeof(MyDateTimeConverter))]
public IEnumerable<DateTime> XAxis { get; set; }
我希望它也适用于 IEnumerable,但不出所料,它不会:
无法将“WhereSelectArrayIterator`2[System.Int32,Model.State]”类型的对象转换为“System.Enum”类型。
有没有办法说JsonConverterAttribute 适用于每个项目而不是可枚举本身?
【问题讨论】:
-
@juharr 这实际上是为了分享一些阻碍我的东西。并且认为我为自己的谷歌搜索技能感到自豪......