-Added nullable DateTime support to IsoDateTimeConverter and JavaScriptDateTimeConverter
-Added WriteValue overloads to JsonWriter for nullable types -Fixed JsonTextWriter.WriteValue(string) to write null instead of an empty string for a null value -Fixed JsonWriter.WriteValue(object) to no longer error on null values
This commit is contained in:
@@ -58,6 +58,32 @@ namespace Newtonsoft.Json.Tests.Converters
|
||||
Assert.AreEqual("new Date(976918263055)", result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SerializeNullableDateTimeClass()
|
||||
{
|
||||
NullableDateTimeTestClass t = new NullableDateTimeTestClass()
|
||||
{
|
||||
DateTimeField = null,
|
||||
DateTimeOffsetField = null
|
||||
};
|
||||
|
||||
JavaScriptDateTimeConverter converter = new JavaScriptDateTimeConverter();
|
||||
|
||||
string result;
|
||||
|
||||
result = JavaScriptConvert.SerializeObject(t, converter);
|
||||
Assert.AreEqual(@"{""PreField"":null,""DateTimeField"":null,""DateTimeOffsetField"":null,""PostField"":null}", result);
|
||||
|
||||
t = new NullableDateTimeTestClass()
|
||||
{
|
||||
DateTimeField = new DateTime(2000, 12, 15, 22, 11, 3, 55, DateTimeKind.Utc),
|
||||
DateTimeOffsetField = new DateTimeOffset(2000, 12, 15, 22, 11, 3, 55, TimeSpan.Zero)
|
||||
};
|
||||
|
||||
result = JavaScriptConvert.SerializeObject(t, converter);
|
||||
Assert.AreEqual(@"{""PreField"":null,""DateTimeField"":new Date(976918263055),""DateTimeOffsetField"":new Date(976918263055),""PostField"":null}", result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void DeserializeDateTime()
|
||||
{
|
||||
@@ -67,6 +93,14 @@ namespace Newtonsoft.Json.Tests.Converters
|
||||
Assert.AreEqual(new DateTime(2000, 12, 15, 22, 11, 3, 55, DateTimeKind.Utc), result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException(typeof(Exception), ExpectedMessage = "Cannot convert null value to System.DateTime.")]
|
||||
public void DeserializeNullToNonNullable()
|
||||
{
|
||||
DateTimeTestClass c2 =
|
||||
JavaScriptConvert.DeserializeObject<DateTimeTestClass>(@"{""PreField"":""Pre"",""DateTimeField"":null,""DateTimeOffsetField"":null,""PostField"":""Post""}", new JavaScriptDateTimeConverter());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void DeserializeDateTimeOffset()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user