-Fixed deserializing null Regex
This commit is contained in:
@@ -232,5 +232,20 @@ namespace Newtonsoft.Json.Tests.Converters
|
||||
Assert.AreEqual("", newRegex.Regex.ToString());
|
||||
Assert.AreEqual(RegexOptions.None, newRegex.Regex.Options);
|
||||
}
|
||||
|
||||
public class SimpleClassWithRegex
|
||||
{
|
||||
public Regex RegProp { get; set; }
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void DeserializeNullRegex()
|
||||
{
|
||||
string json = JsonConvert.SerializeObject(new SimpleClassWithRegex { RegProp = null });
|
||||
Assert.AreEqual(@"{""RegProp"":null}", json);
|
||||
|
||||
SimpleClassWithRegex obj = JsonConvert.DeserializeObject<SimpleClassWithRegex>(json);
|
||||
Assert.AreEqual(null, obj.RegProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -123,14 +123,14 @@ namespace Newtonsoft.Json.Converters
|
||||
/// <returns>The object value.</returns>
|
||||
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
|
||||
{
|
||||
if (reader.TokenType == JsonToken.StartObject)
|
||||
switch (reader.TokenType)
|
||||
{
|
||||
return ReadRegexObject(reader, serializer);
|
||||
}
|
||||
|
||||
if (reader.TokenType == JsonToken.String)
|
||||
{
|
||||
return ReadRegexString(reader);
|
||||
case JsonToken.StartObject:
|
||||
return ReadRegexObject(reader, serializer);
|
||||
case JsonToken.String:
|
||||
return ReadRegexString(reader);
|
||||
case JsonToken.Null:
|
||||
return null;
|
||||
}
|
||||
|
||||
throw JsonSerializationException.Create(reader, "Unexpected token when reading Regex.");
|
||||
|
||||
Reference in New Issue
Block a user