-Fixed converting null string JValues to XML
This commit is contained in:
@@ -125,6 +125,29 @@ namespace Newtonsoft.Json.Tests.Converters
|
||||
}
|
||||
|
||||
#if !NET20
|
||||
public class MyModel
|
||||
{
|
||||
public string MyProperty { get; set; }
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConvertNullString()
|
||||
{
|
||||
JObject json = new JObject();
|
||||
json["Prop1"] = (string)null;
|
||||
json["Prop2"] = new MyModel().MyProperty;
|
||||
|
||||
var xmlNodeConverter = new XmlNodeConverter { DeserializeRootElementName = "object" };
|
||||
var jsonSerializerSettings = new JsonSerializerSettings { Converters = new JsonConverter[] { xmlNodeConverter } };
|
||||
var jsonSerializer = JsonSerializer.CreateDefault(jsonSerializerSettings);
|
||||
XDocument d = json.ToObject<XDocument>(jsonSerializer);
|
||||
|
||||
StringAssert.Equals(@"<object>
|
||||
<Prop1 />
|
||||
<Prop2 />
|
||||
</object>", d.ToString());
|
||||
}
|
||||
|
||||
public class Foo
|
||||
{
|
||||
public XElement Bar { get; set; }
|
||||
|
||||
@@ -1411,7 +1411,11 @@ namespace Newtonsoft.Json.Converters
|
||||
|| reader.TokenType == JsonToken.Boolean
|
||||
|| reader.TokenType == JsonToken.Date)
|
||||
{
|
||||
element.AppendChild(document.CreateTextNode(ConvertTokenToXmlValue(reader)));
|
||||
string text = ConvertTokenToXmlValue(reader);
|
||||
if (text != null)
|
||||
{
|
||||
element.AppendChild(document.CreateTextNode(text));
|
||||
}
|
||||
}
|
||||
else if (reader.TokenType == JsonToken.Null)
|
||||
{
|
||||
@@ -1446,7 +1450,7 @@ namespace Newtonsoft.Json.Converters
|
||||
{
|
||||
if (reader.TokenType == JsonToken.String)
|
||||
{
|
||||
return reader.Value.ToString();
|
||||
return (reader.Value != null) ? reader.Value.ToString() : null;
|
||||
}
|
||||
else if (reader.TokenType == JsonToken.Integer)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user