【发布时间】:2014-10-30 02:00:11
【问题描述】:
我有这个问题,列表中的空日期时间没有被正确序列化/反序列化。
查看此示例代码:
internal class WrapperNullableDateTimeList
{
public List<DateTime?> MyList { get; set; }
}
public void T14_Should_skip_output_nullable_datetime_in_list_TODO_THIS_IS_WRONG()
{
WrapperNullableDateTimeList input = new WrapperNullableDateTimeList();
input.MyList = new List<DateTime?>()
{
new DateTime(2000, 01, 01, 0, 0, 0, 0, DateTimeKind.Utc),
null,
new DateTime(2000, 12, 31, 0, 0, 0, 0, DateTimeKind.Utc),
};
JsConfig.IncludeNullValues = true;
var serializer = new JsonSerializer<WrapperNullableDateTimeList>();
string serializedInput = serializer.SerializeToString(input);
WrapperNullableDateTimeList output = serializer.DeserializeFromString(serializedInput);
output.MyList.Count.Should().Be(3); // Fails here! The 'null' DateTime in the list is dropped
}
有什么想法吗? 顺便说一句,我打印了 serializedInput (json),它看起来像这样:
{"MyList":["2000-01-01T00:00:00.0000000Z",null,"2000-12-31T00:00:00.0000000Z"]}
我让我的 JsConfig 包含空值...那又是什么呢?
【问题讨论】:
标签: c# json datetime servicestack